GetObject在文本游标上失败

GetObject在文本游标上失败,c,windows,bitmap,cursor,gdi,C,Windows,Bitmap,Cursor,Gdi,我正在尝试获取光标位图,以便使用鼠标光标计算快照 它可以与标准光标(即箭头)配合使用,但一旦光标变成文本光标,它就会失败。 基本上我是这样做的: //Fetching the cursor handle GetCursorInfo( &m_infos ); m_handle = m.infos.hCursor; //Fetching cursor info ICONINFO infos; HICON icon = CopyCursor( m_handle ); GetIconI

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

它可以与标准光标(即箭头)配合使用,但一旦光标变成文本光标,它就会失败。 基本上我是这样做的:

//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上运行这段代码

任何想法、线索都将不胜感激!!
提前多谢

没有文本光标。这叫做插入符号,它的处理方式与鼠标指针完全不同。有关详细信息,请参阅MSDN上的。

infos.hbmColor可能为空:

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


通常,文本光标IDC_IBEAM仅通过使用颜色反转和透明度来定义,这解释了hbmColor为空的事实。您应该始终将hbmMask应用于可选的hbmColor。

我认为chouquette指的是“I-beam”光标,而不是插入符号?@Julien,您可能是对的。根据使用的措辞,我可能弄错了。