[C++] 纯文本查看 复制代码
#include <Windows.h>
// 函数声明
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
// 消息分发
switch (Msg)
{
case WM_DESTROY:
PostQuitMessage(EXIT_SUCCESS);
break;
default:
break;
}
// 返回结果
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
// 入口函数
int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow)
{
// 注册窗口类
WNDCLASS wc = {};
wc.lpszClassName = L"ExampleWindowClass";
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
//wc.lpfnWndProc = DefWindowProc;
if (!RegisterClass(&wc))
{
DWORD err = GetLastError();
ExitThread(err);
}
// 创建窗口
HWND hWnd = CreateWindowEx(0, wc.lpszClassName, L"Example", WS_OVERLAPPEDWINDOW | WS_TABSTOP, 200, 200, 300, 400, NULL, NULL, hInstance, NULL);
if (!hWnd) {
DWORD err = GetLastError();
ExitThread(err);
}
// 显示窗口
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
// 消息处理
MSG msg;
while (GetMessage(&msg, hWnd, 0, 0) > 0)
{
// 翻译消息
TranslateMessage(&msg);
// 派发消息
DispatchMessage(&msg);
}
// 返回结果
return EXIT_SUCCESS;
}
环境:Win10 x64,Visual Studio 2022,项目属性字符集Unicode或多字节都试过
问题:
运行后,将创建一个 空白窗口,当窗口处于激活获得焦点时,
只要键盘有键按下,那么这个窗口就再也无法得到任何响应(但却不是未响应的卡死的那种)
除此之外,其他一切都正常,期间测试消息触发,加上按钮点击什么的,都可以。
|