是否可以使用ICONINFO iconinfo.hbmMask
从iconinfo.hbmColor
和CreateCursor
创建游标
将iconinfo.hbmMask
as a AND和iconinfo.hbmColor
作为XOR传递给CreateCursor
投掷异常。
HICON Create_Cursor(CURSORINFO CursorInfo)
{
ICONINFO iconinfo;
HICON hIcon = NULL;
bool bIconInfo = GetIconInfo(CursorInfo.hCursor,&iconinfo);
if(!bIconInfo)
{
// GetIconInfo failed.
}
hIcon = CreateCursor( NULL,
iconinfo.xHotspot,
iconinfo.yHotspot,
32,
32,
iconinfo.hbmMask,
iconinfo.hbmColor );
if(hIcon == NULL)
{
// CreateCursor failed.
}
return hIcon;
}
CreateCursor
在通过ICONINFO
后失败了,我怎样才能使用HCURSOR
API获得CreateCursor
...在互联网上没有关于'CreateCursor'的正确例子如果有人回答,这篇文章会有所帮助。谢谢。
https://docs.microsoft.com/de-de/windows/desktop/menurc/about-cursors
ICONINFO
s掩码和颜色数据包含HBITMAPS,但CreateCursor
API函数需要纯位数据。
“CreateCursor”API似乎根本不支持颜色。
请看看https://docs.microsoft.com/de-de/windows/desktop/menurc/using-cursors
ICONINFO
文档说hbmMask确实包含AND
和XOR
部分:
hbmMask
类型:HBITMAP
图标位掩码位图。如果此结构定义了黑白图标,则对此位掩码进行格式化,使上半部分为图标AND位掩码,下半部分为图标XOR位掩码。在这种情况下,高度应该是两倍的偶数倍。如果此结构定义了颜色图标,则此掩码仅定义图标的AND位掩码。
(Qazxswpoi)
文件还说:
应用程序应将自定义游标实现为资源,并使用LoadCursor,LoadCursorFromFile或LoadImage,而不是在运行时创建游标。使用游标资源可以避免设备依赖,简化本地化,并使应用程序能够共享游标设计。
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-_iconinfo功能的帮助建议:
HCURSOR
类型:HCURSOR
光标的句柄。游标必须由CreateCursor函数创建或由LoadCursor或LoadImage函数加载。如果此参数为NULL,则从屏幕上删除光标。
(Qazxswpoi)
因此,您似乎可以将加载图像的句柄传递给此函数。
SetCursor
的文件表明https://docs.microsoft.com/de-de/windows/desktop/api/Winuser/nf-winuser-setcursors和CreateIconIdirect
s是可互换的:
从ICONINFO结构创建图标或光标。
(Qazxswpoi)