再上一篇:2.7 窗口函数与消息处理
上一篇:2.8 WM_PAINT消息
主页
下一篇:3.1 显示的时机
再下一篇:3.2 简单的文本显示
文章列表

2.9 WM_DESTROY消息

《Windows 下的 C/C++高级编程》讲述Windows环境下调用Win32 API函数程序设计

WM_DESTROY消息是另一个比较重要的消息。这个消息指示Windows清除窗口。该消息是在用户单击“关闭”按钮或者在程序的系统菜单上选择“关闭”命令时触发的。

通常,窗口函数在接收到WM_DESTROY消息后,会调用PostQuitMessage函数响应,如下:

PostQuitMessage( 0 );

该函数在程序的消息队列中插入一个WM_QUIT消息。正如前面所提到的,GetMessage函数对于除WM_QUIT以外的其他消息都返回非0值。而对于WM_QUIT消息,GetMessage函数返回0值,这将导致WinMain退出消息循环,然后程序执行下面的语句:

return msg.wParam;

msg结构的wParam域是传递给PostQuitMessage函数的值,通常为0。然后返回语句将退出WinMain并终止程序的运行。

2.10 Windows编程的关键

至此,我们已经演示了一个完整的Windows程序的全过程。

#第27页~ Windows下的C/C++高级编程

如果用户还是有点不明白,那么这里有几点说明:

Windows编程的关键在于明白其消息驱动机制。在传统的程序设计中,程序员拥有对程序的全部控制权,掌握着主动。他们负责设计程序结构、负责设计函数,并负责管理程序流程以及在需要时主动调用所需的函数。

而在Windows程序设计中,基本的程序流程交由Windows管理,Windows也掌握着一定的主动权。而程序员只需集中精力于真正需要做的事情,如设计函数、编写函数代码,至于函数调用等烦杂的事情,交给Windows去处理。

于是,就引出了Windows编程中一个极其重要的概念——窗口函数。窗口函数的存在正是Windows编程的精华所在。程序员所要做的,就是集中精力编写自己的窗口函数,接收所要接收的消息,给出相应的处理代码,而调用的工作由Windows来处理。通过消息循环机制,Windows会尽心尽职的把各种各样的消息发送到程序员的窗口函数中,并调用窗口函数来加以处理。

其实,从程序的外部调用程序内的例程,在传统的程序设计中也并非从未有过。例如,在C语言中,允许对硬件中断的捕获,然后转入相应的例程加以处理。只是在Windows编程中,这种概念扩展为包括一切事件。

#第28页~

第3章 文本显示

文字自诞生以来,一直就成为人类交流信息、保存信息、传承文明的,最基本、最重要的工具。在Windows等图形界面的操作系统尚未问世的时候,在UNIX、DOS等字符界面操作系统大行其道的年代,文字占据了绝对重要的统治地位;即便在今天,纯图形远不能担当表情达意的功能,文字的地位依然是不可动摇的。这一章就为大家介绍Windows下的文本输出。