- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 Windows 32位汇编应用举例 1.了解Windows下应用程序和DOS下应用程序的异同。 2.逐渐领会消息、句柄、API函数和窗口等概念。 3.深入地了解高级语言实现界面控制、硬件控制等的原理。 4.比较和高级语言如VC++,Dephi等的相似性。 6.1窗口设计程序 Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows Gui 函数。其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。对程序员来说,这些 Gui 源代码都是经过了微软的严格测试,随时拿来就可以用的。当然至于具体地写程序对于程序员来说还是有难度的。为了创建基于窗口的应用程序,必须严格遵守规范。作到这一点并不难,只要用模块化或面向对象的编程方法即可。 例题1 程序运行 显示一个窗口的几个步骤 得到您应用程序的句柄(必需); 得到命令行参数(如果您想从命令行得到参数,可选); 注册窗口类(必需,除非您使用 Windows 预定义的窗口类,如 MessageBox 或 dialog box); 产生窗口(必需); 在桌面显示窗口(必需,除非您不想立即显示它); 刷新窗口客户区; 进入无限的获取窗口消息的循环; 如果有消息到达,由负责该窗口的窗口回调函数处理; 如果用户关闭窗口,进行退出处理。 句 柄 我们程序的第一条语句是调用 GetModuleHandle 去查找我们应用程序的句柄。在Win32下,应用程序的句柄和模块的句柄是一样的。您可以把实例句柄看成是您的应用程序的 ID 号。 命令行参数 如果您的应用程序不处理命令行那么就无须调用 GetCommandLine,这里只是告诉您如果要调用应该怎么做。 注册窗口类 一个窗口类就是一个有关窗口的规范,这个规范定义了几个主要的窗口的元素,如:图标、光标、背景色、和负责处理该窗口的函数。您产生一个窗口时就必须要有这样的一个窗口类。如果您要产生不止一个同种类型的窗口时,最好的方法就是把这个窗口类存储起来,这种方法可以节约许多的内存空间。 如果您要定义自己的创建窗口类就必须:在一个 WINDCLASS 或 WINDOWCLASSEXE 结构体中指明您窗口的组成元素,然后调用 RegisterClass 或 RegisterClassEx ,再根据该窗口类产生窗口。对不同特色的窗口必须定义不同的窗口类。 WINDOWS有几个预定义的窗口类,譬如:按钮、编辑框等。要产生该种风格的窗口无须预先再定义窗口类了,只要包预定义类的类名作为参数调用 CreateWindowEx 即可。 WNDCLASSEX 中最重要的成员莫过于lpfnWndProc了。前缀 lpfn 表示该成员是一个指向函数的长指针。在 Win32中由于内存模式是 FLAT 型,所以没有 near 或 far 的区别。每一个窗口类必须有一个窗口过程,当 Windows 把属于特定窗口的消息发送给该窗口时,该窗口的窗口类负责处理所有的消息,如键盘消息或鼠标消息。由于窗口过程差不多智能地处理了所有的窗口消息循环,所以您只要在其中加入消息处理过程即可。 消息是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个用MSG命名的结构传递给应用程序的,这个结构中包含了消息的类型等信息。其定义如下: MSG struct Hwnd dword ? ;消息目的窗口句柄 Message dword ? ;消息常量标识符,是用WM_开头的预定义常量 wParam dword ? ;32位消息带的参数1 lParam dword ? ;32位消息带的参数2 Time dword ? ;消息创建时的时间 Pt POINT ;消息创建时的鼠标位置 MSG ends WNDCLASSEX STRUCT DWORD ? cbSize?????????? DWORD????? ? ? Style DWORD????? ? ? lpfnWndProc DWORD????? ? ? cbClsExtra DWORD????? ? ? cbWndExtra?????? ? DWORD????? ? ? hInstance???? ???
您可能关注的文档
- Delphi程序设计教程 作者 吕新平 冯祖洪 张强华 第五章.ppt
- Delphi程序设计教程 作者 吕新平 冯祖洪 张强华 第一章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第1-4章 第2章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第1-4章 第3章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第1-4章 第4章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第5-8章 第5章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第5-8章 第6章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第5-8章 第7章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第9-10章 第9章.ppt
- Delphi程序设计实训教程高职 作者 占跃华 第9-10章 第10章.ppt
- DOS Windows汇编语言程序设计教程 作者 7-302-11082-4k 第三章 3.1.ppt
- DOS Windows汇编语言程序设计教程 作者 7-302-11082-4k 第四章 第四章.ppt
- DOS Windows汇编语言程序设计教程 作者 7-302-11082-4k 第五章 第五章.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第1章 Dreamweaver 8概述.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第2章 网页中的文字、图像和导航条.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第3章 框架、表格、层与网页布局.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第4章 表单、样式表与网页中的其他对象.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第6章 模板、命令、“资源”面板和外部插件.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第8章 中文Flash 8基础.ppt
- Dreamweaver 8和Flash 8案例教程 作者 沈昕 第9章 创建和编辑对象.ppt
文档评论(0)