DOS Windows 汇编语言 程序设计 教程 课件 第五章 第六章.ppt

DOS Windows 汇编语言 程序设计 教程 课件 第五章 第六章.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DOS Windows 汇编语言 程序设计 教程 课件 第五章 第六章

第六章 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???? ???

文档评论(0)

almm118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档