用c++写一个具有handle的代码
时间: 2023-07-15 21:11:11 浏览: 131
以下是一个简单的 C++ 代码,它展示了如何在 Windows 平台上创建一个具有 handle 的窗口:
```c++
#include <Windows.h>
// 窗口过程函数
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 注册窗口类
WNDCLASS wc = { 0 };
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = L"MyWindowClass";
RegisterClass(&wc);
// 创建窗口并获取句柄
HWND hwnd = CreateWindow(L"MyWindowClass", L"My Window", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL);
// 显示窗口
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// 消息循环
MSG msg = { 0 };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
```
这段代码创建了一个名为 "MyWindowClass" 的窗口类,并创建了一个具有窗口标题 "My Window" 的窗口。在创建窗口时,使用了 `CreateWindow` 函数来获取窗口句柄。在消息循环中,程序使用 `GetMessage` 函数来获取消息,并通过 `DispatchMessage` 函数将其分派给窗口过程函数进行处理。
在 Windows 平台上,每个窗口都有一个唯一的句柄。在此示例中,通过 `CreateWindow` 函数获取了窗口的句柄,并在消息循环中使用了该句柄来处理窗口消息。
阅读全文