设为首页 加入收藏

TOP

视窗和讯息(二十九)
2010-12-30 21:09:07 】 浏览:25652
Tags:视窗 讯息
窗讯息处理程式发送另一个讯息的函式。这时,视窗讯息处理程式必须在函式呼叫传回之前完成对第二个讯息的处理。那时视窗讯息处理程式将处理最初的讯息。例如,当视窗程序呼叫UpdateWindow时,Windows将呼叫视窗讯息处理程式来处理WM_PAINT讯息。视窗讯息处理程式处理WM_PAINT讯息结束以後,UpdateWindow呼叫将把控制传回给视窗讯息处理程式。

这也就是说视窗讯息处理程式必须是可重入。在大多数情况下,这不会带来问题,但是程式写作者应该意识到这一点。例如,假设您在视窗讯息处理程式中处理一个讯息时设置了一个静态变数,然後呼叫了一个Windows函式。在这个函式传回时,您还能保证那个变数的值还是原来那个吗?难说--很可能您呼叫的Windows函式产生了另外一个讯息,并且视窗讯息处理程式在处理这个讯息时改变了该变数的值。这也是在编译Windows程式时,有些编译最佳化选项必须关闭的原因之一。

在许多情况下,视窗讯息处理程式必须保存它从讯息中取得的资讯,并在处理另一个讯息时使用这些资讯。这些资讯可以储存在视窗的静态(static)变数或整体变数中。

当然,读者将在下面几章对此有一个更清楚的了解,因为视窗讯息处理程式将处理更多的讯息。

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目