第2章 VC++基础47262.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 VC++基础 贾澎涛 pengtao.jia@ 2.1 Windows程序设计 WINDOWS程序设计是一种完全不同于传统的DOS方式的程序设计方法,它是一种事件驱动方式的程序设计模式。在程序提供给用户的界面中有许多可操作的可视对象。用户从所有可能的操作中任意选择,被选择的操作会产生某些特定的事件,这些事件发生后的结果是向程序中的某些对象发出消息,然后这些对象调用相应的消息处理函数来完成特定的操作。WINDOWS应用程序最大的特点就是程序没有固定的流程,而只是针对某个事件的处理有特定的子流程,WINDOWS应用程序就是由许多这样的子流程构成的。 从上面的讨论中可以看出,WINDOWS应用程序在本质上是面向对象的。程序提供给用户界面的可视对象在程序的内部一般也是一个对象,用户对可视对象的操作通过事件驱动模式触发相应对象的可用方法。程序的运行过程就是用户的外部操作不断产生事件,这些事件又被相应的对象处理的过程。下面是WINDOWS程序工作原理的示意图。 API 操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称Windows API。如CreateWindow就是一个API函数,应用程序中调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。 事件及消息 消息结构 MSG结构定义如下: typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG; 消息队列 进队消息和不进队消息 Windows程序中的消息可以分为“进队消息”和“不进队消息”。 进队消息将由系统放入到应用程序的消息队列中,然后由应用程序取出并发送。 不进队消息在系统调用窗口过程时直接发送给窗口。 窗口和句柄 窗口是Windows应用程序中一个非常重要的元素,一个Windows程序至少要有一个窗口。 窗口通过窗口句柄来标识。 句柄(HANDLE),资源的标识。 操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。 Win32应用程序的步骤 编写WinMain函数,可以在MSDN上查找并复制 创建一个窗口 编写消息循环 编写窗口过程函数 WinMain函数 Windows程序的入口函数 int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ); 窗口的创建 创建一个完整的窗口需要经过下面四个操作步骤: 设计一个窗口类;(WNDCLASS结构体) 注册窗口类;(RegisterClass函数) 创建窗口;(CreateWindow函数) 显示及更新窗口。(ShowWindow和UpdateWindow函数) 注:上机的时候参考MSDN带上字典查看这些函数和结构体的定义与参数说明。 消息循环 在创建窗口、显示窗口、更新窗口后,我们需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。通常我们编写的消息循环代码如下: MSG msg; while(GetMessage(msg,NULL,0,0)) { TranslateMessage(msg); DispatchMessage(msg); } 窗口过程函数 窗口过程函数用于处理发送给窗口的消息。 LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // message ide

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档