对与这一部分如果有不理解,请先学习设计模式中的观察者模式与命令模式(手动微笑)
对于一个Windows程序,在进行完基本的初始化工作之后,则就将开始进行最最重要也是难以理解的部分:消息循环与消息映射
最简单的消息循环不过如下:
while (GetMessage(&msg, ...)) {
TranslateMessage(&msg); //转换键盘消息
DispatchMessage(&msg); //分发消息
}
首先,第一步
TranslateMessage(&msg)则是为了将键盘消息转化,而第2句DispatchMessage(&msg)则会将消息分发给窗口函数去处理,消息产生之时操作系统会根据当初状态,为其
标明所属窗口,而窗口所属的窗口类一开始产生指出就已经明白地标识了窗口函数,所以消息就这样被分发到了指定的窗口之中,对于这一部分其实如果有写过MVC或者
其它相关的观察者模式的例子应该会很好理解这一部分。
这里顺便值得一提的是MFC中的窗口函数,对于MFC的窗口函数,其函数的形式总是保持如下形式:
LRESULR CALLBACK WndProc(HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
无论什么消息,被发送给窗口函数之后都将会被处理,而处理的方法就是最简单的