首页 理论教育Win32消息处理机制-MFC教程

Win32消息处理机制-MFC教程

【摘要】:在第2章中的计算器程序中,实际上已经使用了消息处理机制。在回调函数中通过分支语句对消息进行解析和处理,就是Win32程序的消息处理机制。图3-30 查看运行结果图3-31 保存工作区设置10)继续修改消息回调函数,增加一些消息的种类,进一步观察Win32程序的消息处理机制。在本例中WM_PAINT消息用于界面绘图和WM_ LBUTTONDOWN处理单击左键操作。Windows中常见的消息及其说明见表3-3。

在第2章中的计算器程序中,实际上已经使用了消息处理机制。当单击“计算”按钮和“关闭”按钮时,通过switch语句解析出WM_COMMAND消息,再根据按钮的ID当单击不同的按钮时作不同的处理。在回调函数中通过分支语句对消息进行解析和处理,就是Win32程序的消息处理机制。

下面新建一个Win32程序,进一步演示Win32程序的消息处理机制。

1)执行File→New命令或按快捷键<Ctrl+N>,建立Win32应用程序,如图3-24所示。

978-7-111-46378-8-Chapter03-32.jpg

图3-24 建立Win32应用程序

2)填写工程名“Test32”后单击“OK”按钮,工程就建立好了,如图3-25所示。

978-7-111-46378-8-Chapter03-33.jpg

图3-25 建立好的Win32工程

3)再次执行File→New命令或按快捷键<Ctrl+N>,在Win32工程内添加资源脚本。在弹出的新建对话框的Files分页中,选中“Resource Script”列表项,在“File”文本框中填写一个资源名称(最好与工程名一致),如图3-26所示。

978-7-111-46378-8-Chapter03-34.jpg

图3-26 添加资源脚本

4)单击“OK”按钮后,在工作区中出现ResourceView分页。

在资源视图中单击属性控件的根节点,提示“This file is already open in an editor”,只要关闭右边正在编辑的窗口即可,如图3-27所示。

978-7-111-46378-8-Chapter03-35.jpg

图3-27 查看资源视图

5)在ResourceView中树形控件的根节点上单击鼠标右键,在弹出的快捷菜单中选择“Insert”命令,或者按快捷键<Ctrl+R>弹出插入资源的对话框,如图3-28所示。

6)在插入资源对话框中选中“Dialog”,并单击“New”按钮插入一个对话框资源,如图3-29所示。

978-7-111-46378-8-Chapter03-36.jpg

图3-28 在资源视图中插入资源

978-7-111-46378-8-Chapter03-37.jpg

图3-29 插入对话框资源

7)修改WinMain函数,编写弹出对话框的代码。

978-7-111-46378-8-Chapter03-38.jpg(www.chuimin.cn)

978-7-111-46378-8-Chapter03-39.jpg

8)编译并运行,测试代码,如图3-30所示。

弹出了一个对话框,单击“OK”或者“Cancel”按钮,都可以关闭对话框。

9)在关闭Visual C++6.0时有可能弹出提示,如图3-31所示。

说明工作区中编译列表发生了一些改变,是否需要保存这个改动。因为在插入资源脚本时,编译列表中增加了一个“.rc”文件。单击“是”按钮保存这个变动,或者在退出前执行File→Save workspace命令提前保存编译列表。

978-7-111-46378-8-Chapter03-40.jpg

图3-30 查看运行结果

978-7-111-46378-8-Chapter03-41.jpg

图3-31 保存工作区设置

10)继续修改消息回调函数,增加一些消息的种类,进一步观察Win32程序的消息处理机制。

978-7-111-46378-8-Chapter03-42.jpg

978-7-111-46378-8-Chapter03-43.jpg

11)编译并运行,测试代码,如图3-32所示。

在本例中WM_PAINT消息用于界面绘图和WM_ LBUTTONDOWN处理单击左键操作。

在代码窗口内选中一个WM_COMMAND或其他消息,选择“Go To Definition of xxx”或者按<F12>键,进入“WINUSER.h”头文件。其中列出了所有以“WM_”开头的(Windows Message)宏定义。Windows中常见的消息及其说明见表3-3。

978-7-111-46378-8-Chapter03-44.jpg

图3-32 查看运行结果

表3-3 Windows中常见的消息及其说明

978-7-111-46378-8-Chapter03-45.jpg

(续)

978-7-111-46378-8-Chapter03-46.jpg