- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理课件 - 马洪兵(清华)-微机原理07
* LOCAL hwnd:HWND …… INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInst,NULL mov hwnd,eax INVOKE ShowWindow, hwnd,SW_SHOWNORMAL INVOKE UpdateWindow, hwnd WS_OVERLAPPEDWINDOW表示普通的重叠式窗口 三、Windows应用程序的基本结构 入口函数???显示窗口 * Windows并不直接把输入消息发送给应用程序,而是将其送入应用程序的消息队列之中。此外,Windows和其他应用程序也可以将消息指派到应用程序队列中。 应用程序必须读取应用程序队列,检索消息并将它们发送出去,以便适当的窗口函数能够处理它们,负责这一任务的便是消息循环。 三、Windows应用程序的基本结构 入口函数???消息循环 * 三、Windows应用程序的基本结构 入口函数???消息循环 LOCAL msg:MSG …… .WHILE TRUE invoke GetMessage, ADDR msg,NULL,0,0 .BREAK .IF (!eax) invoke DispatchMessage, ADDR msg .ENDW * GetMessage函数从应用程序队列检索消息,并把消息复制到消息结构Msg中。该函数的原型为: BOOL GetMessage ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) 三、Windows应用程序的基本结构 入口函数???消息循环 GetMessage函数检索到WM_QUIT消息时返回0,检索到其他消息均返回非0值。 * 三、Windows应用程序的基本结构 入口函数???消息循环 DispatchMessage函数负责将消息队列中的消息发送到相应的窗口函数中进行进一步的处理,该函数的原型为: BOOL DispatchMessage (CONST MSG *lpMsg) 参数LpMsg为指向记录消息的结构变量的指针。 * 消息由MSG结构来描述,在windows.inc文件中该结构定义如下: MSG STRUCT hwnd DWORD ? ;用以检索消息的窗口句柄 message DWORD ? ;消息值 wParam DWORD ? ; lParam DWORD ? ;包含消息的附加信息 time DWORD ? ;指定消息送至队列的时间 pt POINT ;消息发送时光标的位置 MSG ENDS 三、Windows应用程序的基本结构 入口函数???消息循环 * 窗口函数 窗口函数也称为窗口过程,负责从Windows接收消息,并根据这些消息完成特定的操作 窗口函数是一个回调函数,由Windows系统调用,应用程序并不会直接调用它的窗口函数 窗口函数的主体是由一系列.IF语句组成的消息处理程序段 三、Windows应用程序的基本结构 * 窗口函数 三、Windows应用程序的基本结构 窗口函数有四个参数,函数定义为: WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM …… ;函数体 WndProc endp hWnd为窗口句柄 uMsg为消息值 wParam和lParam包含消息的附加信息 * 窗口函数 三、Windows应用程序的基本结构 .IF uMsg==WM_DESTROY invoke PostQuitMessage,NULL .ELSEIF uMsg==xxxx1 …… .ELSEIF uMsg==xxxx2 …… .ELSE invoke DefWindowProc,hWnd,uMsg,wParam,lParam ret .ENDIF ret 如果窗口函数不处理某些消息,则必须把它们传给DefWindowProc函数 * case 1 case 2 case 3 … Default Windows系统 应用程序 WinM
文档评论(0)