如何在 Visio 中以编程方式更改光标?
您好,有什么方法可以以编程方式更改 Visio 中的鼠标光标吗? 我浏览了 Visio SDK 中的所有自动化类,但找不到任何相关的属性、方法、事件......
Hi is there any way I can change the mouse cursor in Visio programmatically?
I went through all the Automation classes in Visio SDK and could not find any related property, method, event....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
-- 编辑:即使您可以通过编程方式更改光标,但 Visio(我的计算机中为 2003)似乎会不断恢复原始光标。我已经尝试过,如果我不移动鼠标,我可以获得不同的光标(如手),直到我移动鼠标,然后它返回到箭头。
所以,现在我的答案是:你不能改变光标。
也许其他 Visio 版本也可以。
您可以使用 VBA 代码中的 Windows API 调用来更改光标。
这里有一个例子: http://www.vbaexpress.com/kb/getarticle .php?kb_id=929
一个更好的例子,我必须在 Visio 中工作:http://www.tek-tips.com/viewthread.cfm?qid=1700789
下面是我用于测试环境的代码:
首先,创建一个“modCursor”模块:
其次,创建一个类模块“MouseListener”:
第三,将以下代码插入到“ThisDocument”模块中:
现在,通过移动鼠标并单击按钮,您可以在立即窗口中获得一些信息。
如果单击左键,光标会变成手形,但是当您再次移动鼠标时,光标会变回来。我能想到的唯一解释是 Visio 的事件正在根据(视觉)上下文更改光标图标。
问候,
-- Edit: Even while you can programmatically change the cursor, it seems that Visio (2003 in my computer) continuously restores the original cursor. I've tried it and, if I don't move the mouse, I can get a different cursor (like the hand) until I move the mouse, then it goes back to the arrow.
So, for now, my answer is: you can't change the cursor.
Maybe it is possible for other Visio versions.
You can use Windows API calls from your VBA code to change the cursor.
There is an example here: http://www.vbaexpress.com/kb/getarticle.php?kb_id=929
A better example, which I have got to work in Visio: http://www.tek-tips.com/viewthread.cfm?qid=1700789
And below, the code I have used for the testing environment:
First, create a "modCursor" module:
Second, create a Class Module, "MouseListener":
Third, insert the following code into the "ThisDocument" module:
Now, by moving the mouse and clicking the buttons you get some information in the immediate window.
If you click the left button, the cursor changes to the hand, but when you move the mouse again, the cursor changes back. The only explanation I can think of is that Visio's events are changing the cursor icon depending on the (visual) context.
Regards,