摘要: MFC应用程序中处理消息的顺序 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()该函数的功能首先按字节对消息进行排序,对于WM_COMMAND消息,调用OnCommand()消息响应函数,对于WM_NOTIFY消息... 阅读全文
posted @ 2012-06-15 16:06 小心小意 阅读(403) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/dehuadeng/article/details/6052095考虑单窗口情况:假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序:1.手工调用pWnd->DestroyWindow();2.DestroyWindow会发送WM_DESTROY;3.WM_DESTROY对应的消息处理函数是OnDestroy();4.DestroyWindow会发送WM_NCDESTROY;5.WM_NCDESTROY对应的消息处理函数是OnNcDestroy;6.OnNcDestroy最后会调用PostNcD 阅读全文
posted @ 2012-06-15 15:57 小心小意 阅读(886) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/brilliantlight/article/details/6904039在做基于窗口的Windows程序的时候,我们避免不了要向窗口发送消息,有两种方式,一种是PostMessage,另外一种是SendMessage。关于这两个宏,我是通过狠狠的看MSDN才搞明白的,那里讲的是最权威的。它们的区别如下:1、PostMessage会将消息压入窗口所在线程的消息队列,然后返回;而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得消息处理后的返回值的时候,就要用到SendMessage。 阅读全文
posted @ 2012-06-15 10:28 小心小意 阅读(536) 评论(0) 推荐(0) 编辑