⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0203.htm

📁 c语言经典教程
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>
<HEAD>
<TITLE>Visual C++与计算机接口</TITLE>
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=gb2312" > 
</HEAD>
<body>
<H3>Windows编程基础</H3>
<p>
  Windows系统主要具有以下优点:<BR>
·直观、高效的面向对象的图形用户界面,易学易用。<BR>
·用户界面统一、友好、漂亮。<BR>
·丰富的设备无关的图形操作。<BR>
·多任务。<BR>
  Windows编程与DOS环境下编程相比有很大的不同。Windows要求以一种全新的思维方式进行程序设计。<BR>
</p>
<H4><a name='01'>1、事件驱动</a></H4>
<p>
  传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。<BR>
  一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序直接控制程序事件和过程的顺序。<BR>
  这样的程序设计方法是面向程序而不是面向用户的,交互性差,用户界面不够友好,因为它强迫用户按照某种不可更改的模式进行工作。<BR>
  因为MS-DOS程序使用顺序执行的模式,如果要取得用户的输入,则需要用巨大的循环来不断地检测键盘或鼠标。<BR>
  它的基本模型如图2.3.1所示。<BR>
<p align="center"><span style="FONT-SIZE: 9pt"><img height="320" width="180" alt="过程驱动模型" src="020301.jpg" ></span></p>
<p align="center"><span style="FONT-SIZE: 9pt">图2.3.1 过程驱动模型</span></p>
  事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。<BR>
  对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。<BR>
  它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。<BR>
  它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。<BR>
  它的框图如图1.2所示。在图中,输入界面1-4并没有固定的顺序,用户可以随机选取,以任何合理的顺序来输入数据。<BR>
<p align="center"><span style="FONT-SIZE: 9pt"><img height="300" width="600" alt="事件驱动模型" src="020302.jpg" ></span></p>
<p align="center"><span style="FONT-SIZE: 9pt">图2.3.2 事件驱动模型</span></p>
</p>
<H4><a name='02'>2、消息循环与输入</a></H4>
<p>
  事件驱动围绕着消息的产生与处理展开,一条消息是关于发生的事件的消息。事件驱动是靠消息循环机制来实现的。<BR>
  在Windows应用程序中,系统用消息来向应用程序传递信息,程序只要对系统传递过来的消息给予正确的处理就行了。(在MFC应用程序中,使用消息映射将特定的消息映射到相应的类的成员函数进行处理。)<BR>
  消息是一种报告有关事件发生的通知。它类似于DOS下的用户输入,但比DOS的输入来源要广,Windows应用程序的消息来源有以下四种:<BR>
  (1)输入消息:包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理消息。<BR>
  (2)控制消息:用来与Windows的控制对象,如列表框、按钮、检查框等进行双向通信。当用户在列表框中改动当前选择或改变了检查框的状态时发出此类消息。这类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去。<BR>
  (3)系统消息:由Windows系统向应用程序发送的消息。例如用户改变了窗口大小,则系统向应用程序发送WM_SIZE消息。<BR>
  (4)用户消息:这是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。<BR>
  在DOS应用程序下,可以通过getchar()、getch()等函数直接等待键盘输入,并直接向屏幕输出。而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows来统一管理的。<BR>
  Windows操作系统包括三个内核基本元件:GDI, KERNEL ,USER。<BR>
  其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。<BR>
  系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。<BR>
  USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。<BR>
  消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。<BR>
  每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。框图如下:<BR>
<p align="center"><span style="FONT-SIZE: 9pt"><img height="340" width="480" alt="消息驱动模型" src="020303.jpg" ></span></p>
<p align="center"><span style="FONT-SIZE: 9pt">图2.3.3 消息驱动模型</span></p>
</p>
<H4><a name='03'>3、图形输出</a></H4>
<p>
  Windows程序不仅在输入上与DOS程序不同,而且在程序输出上也与DOS有着很大不同,主要表现为:<BR>
  (1)DOS程序独占整个显示屏幕,其他程序在后台等待。而Windows的每一个应用程序对屏幕的一部分进行处理。DOS程序可以直接往屏幕上输出,而Windows是一个多窗口的操作系统,由操作系统来统一管理屏幕输出;每个窗口要输出内容时,必须首先向操作系统发出请求(GDI请求),由操作系统完成实际的屏幕输出工作。<BR>
  (2)Windows程序的所有输出都是图形。Windows提供了丰富的图形函数用于图形输出,这对输出图形是相当方便的,并且字符也被作为图形来处理的。<BR>
  (3)Windows下的输出是设备无关的。Windows下的应用程序使用图形设备接口(GDI)来进行图形输出。GDI屏蔽了不同设备的差异,提供了设备无关的图形输出能力,Windows应用程序只要发出设备无关的GDI请求(如调用Rectangle画一个矩形),由GDI去完成实际的图形输出操作。<BR><BR>
  Windows的图形输出是由图形设备接口(GDI)来完成的,GDI是系统原始的图形输出库,它用于在屏幕上输出像素、在打印机上输出硬拷贝以及绘制Windows用户界面。<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -