我有一个应用程序,其UI是使用主题自定义呈现的。我还想添加新的非默认游标(比如当用户打算调整窗口大小时调整大小游标)以匹配该主题。
使用WinAPI函数SetCursor
我只能更改应用程序的默认指针,但这还不够,所以我查找了SetSystemCursor
,效果很好。问题是:后一版本永久地更改了系统范围内的游标,但我只希望它们仅针对我的应用程序进行更改。
我考虑在执行SetSystemCursor
之前复制先前的游标并在应用程序出口处重新设置它们,但即使我实现了终止处理程序,如果进程例如,也可能不会调用它。只是崩溃。只要应用程序正在运行,游标仍然会在系统范围内进行更改。
特别是对于resize-cursors,我可以放弃窗口样式,创建一个无边框窗口,并自己渲染/实现调整大小的夹点和逻辑(然后我可以挂钩鼠标悬停事件),但这确实是只是我的最后一招 - 在我做这个繁琐的任务之前,我想知道是否有可能实现我的目标......
对于任何感兴趣的人:UI是使用WPF呈现的,但WPF也不提供此功能(同样,他们拥有它,但仅用于默认指针)。如果必须的话,我不用担心使用WinAPI或其他“低级”电话,但目前似乎没有一个能满足我的需求:(
因此,如果有人知道如何为我的应用程序更改WPF或WinAPI中的其他系统游标(不是默认指针),而不必为我的窗口实现自定义游标逻辑,那么你就可以度过我的一天。 / p>
答案 0 :(得分:1)
我不知道如何在WPF中实现它,但是如果你想将光标设置为默认值之外的其他东西,那么你的窗口过程应该处理WM_SETCURSOR消息。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648382(v=vs.85).aspx