为所有光标ID设置系统范围的自定义光标

时间:2014-05-14 02:08:08

标签: c++ windows winapi c++builder

以下是我使用的代码:

HCURSOR hCrossHair;

...

hCrossHair = LoadCursorFromFile( "ColorTool_CrossHair.cur" );

...

SetSystemCursor( hCrossHair, OCR_NORMAL );

有没有办法设置光标,以便覆盖所有其他光标?例如,如果我在OCR_NORMAL中指定SetSystemCursor,那么它只会替换常规箭头(默认)光标,但只要鼠标位于某个文本字段或可重新调整大小的窗口的边缘上等等,它改变为那些情况的通常光标。

我也试过

SetSystemCursor( hCrossHair, OCR_NORMAL );
SetSystemCursor( hCrossHair, OCR_IBEAM );
SetSystemCursor( hCrossHair, OCR_SIZE );

但似乎只会应用其中一个电话(通常是第一个)。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

Read the documentation

  

它将id参数指定的系统游标的内容替换为hcur参数指定的游标内容,然后销毁hcur。

这意味着您每次要拨打SetSystemCursor()时都必须重新加载或复制光标。

另请注意,这只会替换系统游标,而不是在应用启动后手动分配给VCL的TScreen::Cursors[]属性的用户定义游标。