当鼠标悬停某个HWND时,我需要更改光标图标。我实现了鼠标光标更改
SetClassLong(hWindow, GCL_HCURSOR, (LONG)LoadCursor (NULL, IDC_CROSS));
但是它将光标应用于与指定的HWND共享同一类的每个元素。例如,在我的情况下,HWND是一个Button元素,并且它的类是“ Button”,因此窗口中的所有按钮都将具有相同的光标。如何只将光标更改为指定的HWND?像这样的东西:
SetHwndCursor(hWindow, GCL_CURSOR, Cursor); //Invented function, just to make the example
谢谢。
要显示与类的默认游标不同的游标,您需要处理WM_SETCURSOR
该窗口的消息并SetCursor
响应进行调用WM_SETCURSOR
。有关简短示例,请参见显示光标。
您需要对按钮进行子类化,以覆盖按钮的WndProc来处理WM_SETCURSOR
。用于SetWindowSubclass
对窗口进行子类化(然后在RemoveWindowSubclass
销毁按钮时删除子类化,以响应WM_NCDESTROY
—有关详细信息,请参见Raymond Chen的“更安全”子类化)。SetWindowLongPtr
不再建议为Windows子类化。
感谢@IInspectable和@JonathanPotter提供有关的信息SetWindowSubclass
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句