- 3
- 0
- 约1.38万字
- 约 51页
- 2017-06-03 发布于湖北
- 举报
3.1.9 消息循环 MSG结构定义 typedef struct tagMSG { HWND hwnd ; UINT message ; WPARAM wParam ; LPARAM lParam ; DWORD time ; POINT pt ; } MSG, * PMSG ; POINT是一个结构,定义如下: typedef struct tagPOINT { LONG x ; LONG y ; } POINT, * PPOINT; 3.1.9 消息循环 TranslateMessage (msg) ; 将msg结构传给Windows,进行一些键盘转换。 DispatchMessage (msg) ; 将msg结构回传给Windows。Windows将该消息发送给适当的窗口函数,让它进行处理。 这也就是说,Windows将呼叫窗口函数。(为什么?) 3.1.9 消息循环 消息循环 while (GetMessage (msg, NULL, 0, 0)) { TranslateMessage (msg) ; //将msg结构传给Windows,进行一些键盘转换。 DispatchMessage (msg) ; //将msg结构回传给Windows。Windows将该消息发送给适当的窗口函数,让它进行处理。 } 3.1.10 窗口消息处理程序 窗口函数可任意命名。 一个Windows程序可以包含多个窗口函数。 一个窗口函数与RegisterClass注册的特定窗口类别相关联。 CreateWindow函数根据窗口类别建立窗口。 依据一个窗口类别,可以建立多个窗口。 3.1.10 窗口消息处理程序 窗口函数定义形式: LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 窗口函数参数与MSG结构的前四个字段是相同的。第一个接收消息的窗口句柄。 第二个参数标识消息。 最后两个参数是32位消息参数,提供消息的更多信息。 窗口函数由Windows呼叫。 程序通过呼叫SendMessage函数呼叫窗口函数。 3.1.11 处理消息 窗口消息用一个数值(message)来标识参数。头文件WINUSER.H为每个消息定义以WM(窗口消息)为前缀开头的标识符。 窗口函数使用switch和case结构来确定接收的消息及如何处理它。处理完消息后,必须传回0。 窗口函数不处理的消息应该被传给DefWindowProc的Windows函数。 从DefWindowProc传回的值由窗口函数传回。 3.1.11 处理消息 HELLOWIN中,窗口函数的结构如下: switch (iMsg) { caseWM_CREATE : 处理WM_CREATE消息 return 0 ; caseWM_PAINT : 处理WM_PAINT消息 return 0 ; caseWM_DESTROY : 处理WM_DESTROY消息 return 0 ; } return DefWindowProc (hwnd, iMsg, wParam, lParam) ; 3.1.11 播放声音文件 窗口函数接收的第一个消息是WM_CREATE。当Windows处理CreateWindow函数时,WndProc接收这个消息。 HELLOWIN对这个消息的处理中播放一个名为HELLOWIN.WAV的声音文件(playSound)。 WndProc通过从窗口函数中传回0,结束了整个WM_CREATE的处理。 3.1.12 WM_PAINT消息 WndProc处理的第二个消息为WM_PAINT。这个消息在Windows程序设计中是很重要的。当窗口显示区域的一部分显示内容或者全部变为「无效」,以致于必须「更新画面」时,将由这个消息通知程序。 显示区域的显示内容怎么会变得无效呢?在最初建立窗口的时候,整个显示区域都是无效的,因为程序还没有在窗口上画什么东西。第一条WM_PAINT消息(通常发生在WinMain中呼叫UpdateWindow时)指示窗口函数在显示区域上画一些东西。 3.1.12 WM_DESTROY消息 WM_DESTROY消息是另一个重要消息。这一个消息指示,Windows正在关闭窗口。 PostQuitMessage (0) 在程序的消息队列中插入一个WM_QUIT消息。导致WinMain退出消息循环,并终止程序。 3. 2 Windows 程序设计的难点 Windows程序所作的一切都是响应发送给窗口函数的消息。这是概念上的主要难点之一。 3.2.1 别呼叫我,我会呼叫
您可能关注的文档
- 第三篇 Word.ppt
- 第三篇 插补.pdf
- 第三篇 多媒体信息处理技术.ppt
- 第三篇 多指令流出技术.ppt
- 第三篇 汇款.ppt
- 第三篇 会计软件的应用-报表管理模块应用基本流程.pdf
- 第三篇 晶体结构.ppt
- 第三篇 空间数据结构.ppt
- 第三篇 数据库的基本操作.ppt
- 第三篇 推理技术.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)