2009-08-25 6 views
1

Ich schreibe ein Add-on (nach dem Format von VSPackage) für Visual Studio. Eines der entworfenen Features ist: Wenn der Benutzer im Bereich des Texteditors mit der linken Maustaste klickt oder die Taste nach oben oder unten drückt, um zu einer neuen Zeile zu wechseln, kann das Add-On dieses Ereignis erfassen und dann etwas tun Umriss "in Visual Assist, wenn Sie auf eine neue Linie klicken, wird das entsprechende Element im VA-Umriss-Werkzeugfenster markiert.Wie erfasst man das Mausklick-Ereignis in VS2008 von ENVDTE?

Das Problem, das ich treffe, ist: Ich kann keine API in Visual Studio Shell oder andere SDK finden, die das Ereignis auf Mausebene unterstützt (Envdte80 Namespace liefert ein Ereignis mit dem Namen "TextDocumentKeyPressEvents", das für Tastaturebene verwendet werden kann) Veranstaltung). Hat jemand eine Lösung dafür? Vielen Dank im Voraus :-)

Antwort

0

Es gibt keine direkte Möglichkeit, dies in Visual Studio-Erweiterbarkeit zu tun. Sie können jedoch natives WinAPI (aus dem C++ - oder C# -Erweiterbarkeitspaket) verwenden, um einen globalen Maus-Hook festzulegen - dies ermöglicht Ihnen das Abfangen von Mausklicks. Sie können als Filter klicken, Caret-Position im Texteditor usw. innerhalb Ihres Erweiterungspakets erhalten.

+0

Eye of Hell, Sie haben geschrieben: *> Sie können dann Caret-Position im Texteditor bekommen * Haben Sie eine API vorschlagen, um einen EnvDTE.TextPoint von einem [X, Y] auf dem Bildschirm Mauskoordinaten? –