VBA调用user32.dll游标修改

时间:2011-12-30 15:38:37

标签: windows vba dll windows-7 visio

简短问题
是否可以使用user32.dll

更改所选应用程序(Visio 2010)的系统光标

背景
我试图强制光标只显示为箭头,或者更好的是,将“沙漏”指针重新映射到箭头指针,以便当我的Visio应用程序“等待”时,它将始终显示箭头。到目前为止,我已加载user32.dll并调用SetSystemCursorLoadCursorAShowCursor。在所有调用中,只有ShowCursor按预期工作。

问题很可能是我不完全理解LoadCursorSetSystemCursor实际上做了什么。我已经链接了我能找到的最好的文档,IMO最多也缺乏这些文档。

结束思考
有没有更好的方法来实现这一点,而不是使用user32.dll API?请注意,我可以找到的Visio 2010根本不能控制鼠标指针。

跟进
查看this post我想要解决的确切行为。请注意,我并不是试图隐藏应用程序以显示它正忙。每次我以编程方式更改Visio形状数据时,我都试图摆脱沙漏闪烁。 Here是我在VisioGuy帖子中提到的Visio示例的链接,您必须是站点的成员才能查看附件。

最初我无意将LoadCursorSetSystemCursor一起使用,因为我在Pinvoke.net找到的文档(SetSystemCursor),我只关联它们。我没有看到SetSystemCursor的MSDN文档。感谢Pinvoke上的提示......我不知道为什么我没有为它们提供MSDN。

不可否认,我没有玩过很多系统DLL。我的主要知识库是嵌入式系统和操作系统独立语言(即Python),所以关于导致全局系统错误的SetSystemCursor的提示是我真正需要的那种信息。

1 个答案:

答案 0 :(得分:0)

虽然它没有严格回答“光标修改”的问题。问题,我认为您应该能够使用Visio的Application对象属性:

至少,这将允许您在进行后台处理时隐藏光标。我已经在visguy上用你的样本对它进行了测试,并且它不再显示无痛的光标变化。