2009-08-25 6 views
1

Я пишу надстройку (по формату VSPackage) для Visual Studio. Одна из созданных функций: когда пользователь щелкнул левой кнопкой мыши в области текстового редактора или нажал клавишу «вверх» или «вниз», чтобы перейти к новой строке, надстройка может захватить это событие, а затем сделать что-то (это похоже на «VA Outline "в Visual Assist, когда вы нажимаете на новую строку, соответствующий элемент будет выделен в окне инструмента VA Outline).Как захватить событие щелчка мыши в VS2008 от ENVDTE?

Проблема, с которой я встречаюсь: Я не могу найти какой-либо API в Visual Studio Shell или другой SDK, который поддерживает событие уровня Mouse (пространство имен Envdte80 предоставляет событие с именем «TextDocumentKeyPressEvents», которое может использоваться для клавиатуры мероприятие). Кто-нибудь получает решение? Большое спасибо заранее :-)

ответ

0

Нет прямого способа сделать это в расширяемости Visual Studio. Но вы можете использовать собственный WinAPI (из пакета расширяемости C++ или C#) для установки глобального мышиного крючка - это даст вам возможность перехватывать щелчки мыши. Вы можете фильтровать щелчок, получить позицию каретки в текстовом редакторе и т. Д. Из вашего пакета расширяемости.

+0

Eye of Hell, Вы писали: *> Затем вы можете получить позицию каретки в текстовом редакторе * У вас есть API, предлагающий получить EnvDTE.TextPoint из координаты координаты [X, Y] на экране? –

Смежные вопросы