- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 Win32 API编程 信息与电气工程学院 计算机技术教研室 周云成 1 Windows应用程序运行方式 Windows下的程序是一种消息驱动的执行方式。所谓消息是描述事件发生的信息。用户在当前进程的窗口上,敲击键盘或点击鼠标的事件,首先被操作系统截获,然后操作系统以消息的方式发送给当前程序,程序接收到消息,在得到CPU控制权时,会根据消息的不同执行相应的处理。所以,Windows下程序的执行并不是按线性进行的,其执行顺序取决于程序的执行环境。 每当Windows启动一个程序并生成进程的过程中,Windows就会为进程中的每个线程分配一个缓冲区,这个缓冲区称之为消息队列,用来暂存所有发给当前线程的Windows消息。 1 Windows应用程序运行方式 当应用程序的用户敲击键盘或点击鼠标时,会在Windows操作系统内部产生中断。该中断把执行控制切换给鼠标或键盘的设备驱动程序。驱动程序首先确定具有输入焦点的当前窗口,然后生成一个消息,该消息包含了这样的内容:具有输入焦点的窗口句柄,消息类型,鼠标的当前位置,消息产生的时间。把所有这些数据封装在消息结构中以后,驱动程序便把消息输入到系统队列中。 1 Windows应用程序运行方式 在Windows操作系统中有一个系统线程叫做原始输入线程,当内核中的调度程序将控制权切换给原始输入线程以后,原始输入线程以先来先服务的方式处理该队列中的消息。每当原始输入线程丛系统队列中取出一条消息,就会对消息进行语法分析,提取目标窗口,确定目标窗口所在的线程,从而将这一条消息放到目标窗口所在线程的消息队列中去。 1 Windows应用程序运行方式 1 Windows应用程序运行方式 Windows应用程序也处于从其线程消息队列中取出和处理消息的循环中。每当应用程序取出一条消息,就开始执行与这条消息有关的处理。 为了使Windows应用程序能够与上面所描述的内容进行交互,每个应用程序都必须采用一种特定的设计方案。这种设计方法逻辑如下: 1 Windows应用程序运行方式 display the main window; //显示主窗口 while not finished //若未结束 { get message from thread message queue; //从消息队列中获取消息 process message retrieved from thread message queue; //处理从线程消息队列中检索到的消息 } 2 Win32 API程序构成 从上面的描述中我们知道Windows应用程序中应当有一个消息循环,这个循环不断的从线程消息对列中取出消息。还应当有消息处理过程来处理从消息队列中取出的各种消息,这个消息处理过程我们称之为窗口过程,其实就是一个函数。 2 Win32 API程序构成 (1)主函数WinMain 当采用Visual C++编写Windows应用程序时,程序的入口点默认为WinMain。WinMain函数具有固定的格式,即具有固定的参数和返回值类型。 The WinMain function is called by the system as the initial entry point for a Windows-based application. int WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); WinMain Parameters hInstance: Handle to the current instance of the application. hPrevInstance: Handle to the previous instance of the application. This parameter is always NULL. lpCmdLine: Pointer to a null-terminated string specifying the command line for the application, excluding the program name. nCmdShow: pecifies how the window is to be shown. This parameter can be one of the following values. WinMain Remarks Remarks Your WinMain should initialize the application, display its main wind
您可能关注的文档
- 沈阳农业大学经济管理学院市场营销学(1)课件第十二章 分销策略.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第十三章 促销策略.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第十四章 市场营销计划、组织与控制.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第十一章 定价策略.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第十章 产品策略.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第四章 消费者市场购买行为分析.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第五章 组织市场购买行为分析.ppt
- 沈阳农业大学经济管理学院市场营销学(1)课件第一章 市场营销概述.ppt
- 沈阳农业大学水利学院建筑材料课件 第二章.ppt
- 沈阳农业大学水利学院建筑材料课件 第六章.ppt
文档评论(0)