GetObject在文本光标上失败

时间:2011-03-13 17:25:57

标签: c windows bitmap cursor gdi

我正在尝试获取光标位图,以便使用鼠标光标计算快照。

使用标准光标(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上运行此代码。

任何想法,线索,将不胜感激!! 非常感谢提前!

2 个答案:

答案 0 :(得分:0)

没有“文字光标”。它被称为插入符号,它的处理方式与鼠标指针完全不同。有关详细信息,请参阅MSDN上的Using Carets

答案 1 :(得分:0)

infos.hbmColor可能是NULLMSDN says for ICONINFO.hbmColor

  

图标颜色位图的句柄。如果此结构定义了黑白图标,则此成员可以是可选的。

通常,文本光标(IDC_IBEAM)仅使用颜色反转和透明度定义,解释hbmColorNULL的事实。您应始终将hbmMask应用于可选的hbmColor