#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;
}