2014.7.28MFC的消息处理(一)——消息的流动
消息被寄送或者发送后,将会按照一定的路线寻找合适的处理函数,以便得到处理或者交由默认的窗口过程进行处理。处理过程如下:
1、应用程序初始化时建立消息队列;
2、鼠标键盘等设备操作产生寄送消息,存放在消息队列中;
3、MFC类中的RUN()函数不断检查消息队列,以判断用户是否进行了键盘或者鼠标等操作;
4、RUN()函数将消息从消息队列中删除(GetMessage()/PeekMessage()),并通过DispatchMessage()将其发送到处理该消息的窗口的窗口过程;
5、窗口过程是窗口消息的处理场所,消息被发送到窗口过程后,进入钩子过程;
6、钩子过程将消息送到AfxWndProc窗口过程进行分发处理;
7、经过消息分发之后仍没有被处理的消息将送回注册时制定的窗口过程进行处理。