我正在尝试获取光标位图,以便使用鼠标光标计算快照。
使用标准光标(IE。箭头)可以正常工作,但只要光标成为文本光标就会失败。 基本上我是这样做的:
//Fetching the cursor handle
GetCursorInfo( &m_infos );
m_handle = m.infos.hCursor;
//Fetching cursor info
ICONINFO infos;
HICON icon = CopyCursor( m_handle );
GetIconInfo( icon, &infos );
BITMAP bitInfos;
if ( GetObject( infos.hbmColor, sizeof( bitInfos ), &bitInfos ) == 0 )
{
qDebug() << "Error N:" << GetLastError();
}
问题是,GetObject()和GetLastError()返回0 ...所以我不知道哪个是错误......
我正在使用QtCreator和MingW在Win7上运行此代码。
任何想法,线索,将不胜感激!! 非常感谢提前!
答案 0 :(得分:0)
没有“文字光标”。它被称为插入符号,它的处理方式与鼠标指针完全不同。有关详细信息,请参阅MSDN上的Using Carets。
答案 1 :(得分:0)
infos.hbmColor
可能是NULL
。 MSDN says for ICONINFO.hbmColor
:
图标颜色位图的句柄。如果此结构定义了黑白图标,则此成员可以是可选的。
通常,文本光标(IDC_IBEAM)仅使用颜色反转和透明度定义,解释hbmColor
为NULL
的事实。您应始终将hbmMask
应用于可选的hbmColor
。