设为首页 加入收藏

TOP

视窗和讯息(二十五)
2010-12-30 21:09:07 来源: 作者: 【 】 浏览:17351
Tags:视窗 讯息
行上,水平方向和垂直方向都位於第四个参数指定的矩形中央。因此,这个函式呼叫将让字串「Hello, Windows 98!」显示在显示区域的中央。

一旦显示区域变得无效(正如在改变大小时所发生的情况一样),WndProc就接收到一个新的WM_PAINT讯息。WndProc通过呼叫GetClientRect取得变化後的视窗大小,并在新视窗的中央显示文字。

WM_DESTROY讯息
 

WM_DESTROY讯息是另一个重要讯息。这一个讯息指示,Windows正在根据使用者的指示关闭视窗。该讯息是使用者单击Close按钮或者在程式的系统功能表上选择 Close时发生的(在本章的後面,我们将详细讨论WM_DESTROY讯息是如何生效的)。

HELLOWIN通过呼叫PostQuitMessage以标准方式回应WM_DESTROY讯息:

PostQuitMessage (0) ;

该函式在程式的讯息伫列中插入一个WM_QUIT讯息。前面提到过,GetMessage对於除了WM_QUIT之外的从讯息伫列中取出的所有讯息都传回非0值。而当GetMessage得到一个WM_QUIT讯息时,它传回0。这将导致WinMain退出讯息回圈,并终止程式。然後程式执行下面的叙述:

return msg.wParam ;

结构的wParam栏位是传递给PostQuitMessage函式的值(通常是0)。然後return叙述将退出WinMain并终止程式。

WINDOWS程式设计的难点
 

即使有了对HELLOWIN的说明,读者对程式的结构和原理可能仍然觉得神秘。在为传统环境编写简单的C程式时,整个程式可能包含在main函式中。而在HELLOWIN中,WinMain只包含了注册视窗类别,建立视窗,从讯息伫列中取出讯息和发送讯息所必须的程式码。

程式的所有实际动作均在视窗讯息处理程式中发生。在HELLOWIN中,这些动作不多,WndProc只是简单地播放了一个音效档案并在视窗中显示一个字串。但是在後面的章节中,读者将发现,Windows程式所作的一切,都是回应发送给视窗讯息处理程式的讯息。这是概念上的主要难点之一,在开始写作Windows程式之前,必须先搞清楚。

别呼叫我,我会呼叫您
 

前面我们提到过,程式写作者已经熟悉了使用作业系统呼叫的做法。例如,C程式写作者使用fopen函式打开档案。

首页 上一页 22 23 24 25 26 27 28 下一页 尾页 25/29/29
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇输出文字 下一篇Unicode简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: