其中有一些函数的定义需要借助msdn帮助文档
//6、处理消息-----窗口过程 //CALLBACK 参数的传递顺序,从右到左依次入栈,并且在函数返回前清空堆栈 LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window 消息所属的窗口句柄 UINT uMsg, // message identifier 具体的消息名称 WM_xxxxx消息名 WPARAM wParam, // first message parameter 键盘附加消息 LPARAM lParam // second message parameter 鼠标附加消息 ) { switch (uMsg) { //所有以xxxWindow为结尾的方法都不会进入到消息队列,而是直接执行这个方法。 //这就是WM_CLOSE窗口关闭了,还可以进行下一步分发消息的原因 case WM_CLOSE: DestroyWindow(hwnd); //DestroyWindow发送另一个消息 WM_DESTROY break; case WM_DESTROY: PostQuitMessage(0); break; case WM_LBUTTONDOWN: //鼠标左键按下 { int xPos = LOWORD(lParam); int yPos = HIWORD(lParam); char buff[1024]; wsprintf(buff,TEXT("x = %d,y = %d"), xPos, yPos); MessageBox(hwnd, buff, TEXT("鼠标左键按下"), MB_OK); break; } case WM_KEYDOWN: //键盘 MessageBox(hwnd, TEXT ("键盘按下"), TEXT("键盘按下"), MB_OK); break; case WM_PAINT: //绘图 { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 100, 100, TEXT("hello"), strlen("hello")); EndPaint(hwnd, &ps); break; } } //返回值用默认的处理方式 return DefWindowProc(hwnd, uMsg, wParam, lParam); }以上就是MFC创建底层窗口的过程,希望对您有帮助。