关于几种消息的区别?WM_QUIT WM_DESTROY WM_DRAW WM_PAINT
在此想问一下,WM_QUIT、WM_DESTROY有什么区别吗,在程序退出时哪一个先调用;WM_DRAW、WM_PAINT又有什么区别呢,在程序绘图时哪一个先调用呢? 问题点数:40、回复次数:4Top
1 楼krh2001(边城浪子)回复于 2005-06-04 19:41:39 得分 25
WM_QUIT ---> 退出消息循环,通常需要结束一视窗应用程序的时候将这个消息送到消息队列. 有一个专门的API: PostQuitMessage(int ExitCode); GetMessage 取到这条消息的时候就会返回 FALSE, 于是消息循环结束:
MSG msg;
Wwhile(GetMessage(&msg, NULL, 0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
WM_DESTROY --> 当一个窗口将消毁前, 这个消息发往窗口, 你可以在响应这个消息的时候做一些什么事.比如当主窗口消毁的时候发 WM_QUIT 消息来退出程序.
WM_PAINT --> 当窗口需要重画的时候, (窗口包含一些已经无效的区域. 这些区域可能是 因为调用 InvalidateRect 或者因为窗口被什么挡住又露出来等),当应用程序空闲的时候, WM_PAINT 消息被发往窗口. 你响应该函数,来恢复窗口的显示.,
Top
2 楼krh2001(边城浪子)回复于 2005-06-04 19:42:08 得分 0
P.S. WM_DRAW ----> 没这个消息Top
3 楼lhb25(缘来缘去)回复于 2005-06-04 19:52:20 得分 15
对》》》》WM_DRAW、WM_PAINT又有什么区别呢,在程序绘图时哪一个先调用呢?
前一个是使用逻辑坐标
后一个是使用设备坐标
前一个可以被后一个调用!
在使用时转换坐标就可以把这两个函数转换使用!!!!!!!
Top
4 楼xieqidong(广州)回复于 2005-06-04 20:00:49 得分 0
谢谢各位,其实第二个问题应该是OnDraw和OnPaint两个函数的区别,在此现丑了,马上给分结贴。Top




