如何修改窗口鼠标光标样式
时间: 2023-08-11 19:26:15 浏览: 236
Windows API提供了一些函数来实现修改窗口鼠标光标样式的功能。具体来说,可以使用LoadCursor函数来加载一个光标资源,使用SetClassLong函数来修改窗口类的属性,从而改变窗口鼠标光标的默认样式。
下面是一个示例代码,可以将窗口鼠标光标的默认样式修改为箭头光标:
```
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc = { };
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = "MyWindowClass";
RegisterClass(&wc);
HWND hwnd = CreateWindowEx(0, "MyWindowClass", "My Window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
500, 500, NULL, NULL, hInstance, NULL);
// 加载箭头光标资源
HCURSOR hCursor = LoadCursor(NULL, IDC_ARROW);
// 修改窗口类的属性,使其使用箭头光标
SetClassLong(hwnd, GCL_HCURSOR, (LONG)hCursor);
ShowWindow(hwnd, nCmdShow);
MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
```
在这个例子中,我们首先使用LoadCursor函数加载了一个箭头光标资源,然后使用SetClassLong函数修改了窗口类的属性,使其使用箭头光标。在窗口被创建后,我们可以看到鼠标光标的样式已经被修改了。
阅读全文