您的位置:首页 > 其它

WINX的消息分派机制

2008-04-09 00:36 197 查看
by 许式伟 at 2006-11-1
WINX的消息分派是卓越的。我们先简单回顾一下WINX的SDI风格的Hello程序与MFC/WTL/SDK的对比 (我们关注的是窗口类中的消息处理相关):
MFC的Hello程序。MainFrm.h / MainFrm.cpp
WTL的Hello程序
WINX的Hello程序
Windows SDK的Hello程序
MFC和WTL有着类似MessageMap(尽管内部机制大不一样),是通过宏实现消息分派的。也许你已经习惯了响应消息时提供MessageMap,但在WINX中这不需要响应任何消息你均只需要直接覆盖消息处理函数即可。示意如下:
 
class MyWindow : public winx::Window
{
public:
 void OnPaint(HWND hWnd) { ... }
};你可能担忧WINX的消息分派的便利,是牺牲性能为代价的。——可是我郑重告诉你,这种担忧是多余的。随着本文对winx消息机制的一步步剖解,你将发现,事实恰恰相反,WINX在消息分派的性能上考虑甚多,其消息分派的代码的无论是编译后的执行代码尺寸,还是效率,均优于MFC、WTL。
下一篇:WINX的消息分派机制(续)
to be continued ... 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: