ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – WinAPI / WPF:仅为应用程序设置系统光标

2019-09-29 23:07:32  阅读:229  来源: 互联网

标签:c wpf winapi cursor c-2


我有一个应用程序,其UI是自定义呈现主题.我还想添加新的非默认游标(如用户打算调整窗口大小时调整大小游标)以匹配该主题.

使用WinAPI函数SetCursor我只能更改应用程序的默认指针,但这还不够,所以我查找了SetSystemCursor,它运行得很好.问题是:后一版本永久地更改了系统范围内的游标,但我只希望它们仅针对我的应用程序进行更改.

我想在我执行SetSystemCursor之前复制先前的游标并在应用程序出口处重新设置它们,但即使我实现了终止处理程序,如果进程例如,也可能不会调用它.只是崩溃.只要应用程序运行,游标仍然会在系统范围内进行更改.

特别是对于resize-cursors,我可以放弃窗口样式,创建一个无边框窗口,并自己渲染/实现调整大小的夹点和逻辑(然后我可以挂钩鼠标悬停事件),但这真的只是我的最后一次度假胜地 – 在做这个繁琐的任务之前,我想知道是否有可能实现我的目标……

对于任何感兴趣的人:使用WPF呈现UI,但WPF也不提供此功能(同样,他们拥有它,但仅用于默认指针).如果必须的话,我不用担心使用WinAPI或其他“低级”电话,但目前似乎没有一个能满足我的需求:(

因此,如果有人知道如何仅为我的应用程序更改WPF或WinAPI中的其他系统游标(不是默认指针)而不必为我的窗口实现自定义游标逻辑,那么你就可以度过我的一天.

解决方法:

我不知道如何在WPF中实现它,但如果你想将游标设置为默认值以外的其他东西,那么你的窗口过程应该处理WM_SETCURSOR消息.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms648382(v=vs.85).aspx

标签:c,wpf,winapi,cursor,c-2
来源: https://codeday.me/bug/20190929/1833531.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有