如何更改鼠标光标的大小?

时间:2019-03-03 01:00:04

标签: c++ winapi

我正在制作一个Widows程序,其中需要一个1×1的光标。我在.cur文件上使用了LoadCursorFromFile(),但是它被放大为标准光标大小。
我还尝试了以下方法:

wc.cursor = LoadImage(0, "Cursor.cur", IMAGE_CURSOR, 1, 1, LR_LOADFROMFILE);  

^ wc是窗口类。

在这种情况下,我遇到了一个编译错误,该错误表明它无法将hIcon转换为int,并且我无法弄清楚出了什么问题。
该程序使用OpenGL,但不幸的是,由于将glClear()设为绘图程序,因此我无法方便地将点放置在光标的位置。
关于如何使用1×1白色正方形构造光标的想法吗?

1 个答案:

答案 0 :(得分:0)

LoadImage返回一个HANDLE。我假设通过wc.cursor,您是指WNDCLASS结构的hCursor字段,它是HCURSOR。根据编译器设置的级别,您可能需要显式区分LoadImage返回到HCURSOR的HANDLE才能使此分配正常工作。

这个问题没有什么要继续的,但是还有其他一些事情可能会误入歧途。一旦编译完成,您可能要检查LoadImage的返回值,以确保它实际加载了游标。如果失败(由NULL或INVALID_HANDLE_VALUE表示),请检查GetLastError,这可能是问题的线索。

一种简单的方法可能是设计一个只有一个不透明像素的标准尺寸光标。