如何通过ENVDTE捕获VS2008中的鼠标点击事件?

发布于 2024-08-03 00:29:43 字数 327 浏览 2 评论 0原文

我正在为 Visual Studio 编写一个附加组件(采用 VSPackage 的格式)。设计的功能之一是:当用户在文本编辑器区域左键单击或按向上或向下键移动到新行时,该附加组件可以捕获此事件,然后执行某些操作(类似于“VA”) Visual Assist 中的“轮廓”功能,当您单击新行时,相应的元素将在 VA 轮廓工具窗口中突出显示)。

我遇到的问题是:我在 Visual Studio Shell 或其他 SDK 中找不到任何支持鼠标级事件的 API(Envdte80 命名空间提供了一个名为“TextDocumentKeyPressEvents”的事件,可用于键盘级事件)。有人能解决这个问题吗?提前非常感谢:-)

I'm writing an add-on (by the format of VSPackage) for Visual Studio. One of the designed feature is: when user left-clicks in the area of text editor or presses up or down key to move to a new line, the add-on can capture this event and then do something (It's similar as the "VA Outline" feature in Visual Assist, when you clicks to a new line, the corresponding element will be highlighted in VA Outline tool window).

The problem I meet is: I can't find any API in Visual Studio Shell or other SDK that supports the Mouse-level event (The Envdte80 namespace supplies an event named "TextDocumentKeyPressEvents" which can be used for keyboard-level event). Does somebody get a solution to this? Many thanks in advance:-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷血 2024-08-10 00:29:43

在 Visual Studio 扩展性中没有直接的方法可以做到这一点。
但是您可以使用本机 WinAPI(来自 C++ 或 C# 扩展包)来设置全局鼠标挂钩 - 这将使您能够拦截鼠标单击。您可以从扩展包中过滤单击、在文本编辑器中获取插入符位置等。

There is no direct way to do so in Visual Studio extensibility.
But you can use native WinAPI (from C++ or C# extensibility package) to set a global mouse hook - this will give you ability to intercept mouse clicks. You can than filter click, get caret position in text editor etc from within your extensibility package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文