第一个win32程序
#include <Windows.h> //自定义过程函数 //参数 HWND:窗口的句柄 message:消息ID 附加消息信息 附加消息信息 long CALLBACK MyWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProcW(hwnd,message,wParam,lParam); } return DefWindowProcW(hwnd, message, wParam, lParam); } int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) { //声明窗口类 WNDCLASS wndClass; //CS_NOCLOSE 禁止系统菜单的关闭选项 wndClass.style = CS_HREDRAW|CS_VREDRAW;//窗口类样式 wndClass.lpfnWndProc = MyWndProc;//窗口过程函数 wndClass.cbClsExtra = 0;//窗口类无扩展 wndClass.cbWndExtra = 0;//窗口实例无扩展 wndClass.hInstance = hInstance;//窗口类所属应用实例 wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//窗口的最小化图标为缺省图标 wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);//窗口采用的箭头光标 wndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));//背景白色 wndClass.lpszMenuName = NULL;//窗口无菜单 wndClass.lpszClassName = L"caoruipeng";//窗口类名称 //注册窗口类 if (!RegisterClass(&wndClass)) { MessageBox(NULL, L"无效的窗口类", L"错误提示", MB_OK); return FALSE; } //创建窗口 HWND hwnd = CreateWindow(L"caoruipeng",//窗口类名称 注册窗口类的名称 L"第一个窗口程序",//窗口标题 WS_OVERLAPPEDWINDOW,//窗口样式 CW_USEDEFAULT,//窗口位置x坐标 CW_USEDEFAULT,//窗口位置y坐标 CW_USEDEFAULT,//窗口宽度 CW_USEDEFAULT,//窗口高度 NULL,//此时窗口无父窗口 NULL,//此时窗口无子菜单 hInstance,//创建窗口的应用程序句柄 NULL ); //展示窗口 ShowWindow(hwnd, nShowCmd); //绘制用户区域 UpdateWindow(hwnd); MSG msg; //如果检索WM_QUIT消息 返回0,其他返回非0 返回0的时候,会跳出循环,结束程序 while (GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg);//翻译消息 //将消息分发给窗口过程函数 返回窗口过程函数返回的值 通常忽略该值 DispatchMessage(&msg); } return msg.wParam; }