第一个windows窗口程序

首先一个能运行的Windows窗口都有一个基本骨架,

  1. 头文件引入
  2. 函数声明(WndProc)
  3. WinMain主函数
  4. 回调处理函数
    大概是这样
    `#include<windows.h>

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM Lparam);
//winmain入口
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
//填充窗口类
WNDCLASS wc = { 0 };
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = TEXT("MyWindowClass");
//注册窗口
RegisterClass(&wc);
//创建窗口
HWND hwnd = CreateWindow(
TEXT("MyWindowClass"),
TEXT("我的第一个窗口"),
WS_OVERLAPPEDWINDOW, // 窗口样式:带标题栏、最大化/最小化/关闭按钮
CW_USEDEFAULT, CW_USEDEFAULT, // 窗口初始位置(系统自动分配)
CW_USEDEFAULT, CW_USEDEFAULT, // 窗口初始大小(系统自动分配)
NULL, NULL, hInstance, NULL
);
//窗口显示和刷新
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
//消息机制
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int)msg.wParam;
}
//消息处理回调函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;

default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
}
`

小结:

  1. 第一次在visual中写Windows程序,文件含中文时最好保存为UTF-8带签名,不然报C4819错误
  2. 因为主函数入口时WinMain而不是Main,所以要把项目的链接器改为Windows

屏幕截图 2026-10-13 205412

posted @ 2026-10-13 21:25  幻屿  阅读(3)  评论(0)    收藏  举报