- 窗口创建过程
1.定义WinMain函数
2.定义窗口处理函数(自定义,处理消息)
3.注册窗口类(向操作系统写入一些数据)
4.创建窗口(内存中创建窗口)
5.显示窗口(绘制窗口的图像)
6.消息循环(获取/翻译/派发消息)
消息处理
- 操作步骤
1.创建项目
2.新建项
3.更改项目引用集
4.添加代码
#include <windows.h> //2.窗口处理函数(自定义,处理消息) LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wParam, LPARAM IParam) { return DefWindowProc(hWnd, msgID, wParam, IParam); } //1.入口函数 int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd ) { //3.注册窗口类 WNDCLASS wc = {0}; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.hCursor = NULL; wc.hIcon = NULL; wc.hInstance = hInstance; wc.lpfnWndProc = WndProc; wc.lpszClassName = "Main"; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wc);//将以上所有赋值全部写入操作系统 //4.在内存创建窗口 HWND hWnd = CreateWindow("Main", "window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL); //5.显示窗口 ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); //6.消息循环 MSG nMsg = {0}; while (GetMessage(&nMsg, NULL, 0, 0)) { TranslateMessage(&nMsg); DispatchMessage(&nMsg);//将消息交给窗口处理函数来处理 } return 0; }
演示
阿飞
2021年9月4日