Kontext-Menü Mouseover

Outsider77

Erfahrenes Mitglied
Guten Morgen,

ich habe mittels VBA für Excel das Kontext-Menü meinen Bedürfnissen angepaßt.
Das heißt z.Bsp. dass ich einen bestimmten Bereich auf dem Tabellen-Blatt definiert habe,
in dem bei Rechtklick zusätzlich zum normalen Kontext-Menü verschiedene Einträge dazukommen,
teilweise sogar mit Untermenüs (wie beim normalen KM bei Filter oder Sortieren).

Nun meine Frage: ist es möglich, zu diesen dynamischen Einträgen ein MouseOver-Event zu erstellen?
Ich hatte mir folgendes vorgestellt:
Einer dieser zusätzlichen KM-Einträge ist "Spalten", welcher wiederum in Untermenüs aufgeteilt ist (Spalte1, Spalte2 usw.).
Wenn ich jetzt mit der Maus über den Eintrag "Spalte1" gehe, hätte ich gerne im Tabellenblatt die "Spalte1" hervorgehoben
(Spalte1 = Range("C11:G42").
Wie ich das mit dem Hervorheben mache, überlege ich mir noch, es geht vorerst nur um das MouseOver-Event.
Kann mir dabei bitte jemand helfen?

Danke!
Gruß Outi
 
Also laut dem was ich dazu bisher gefunden habe geht es wohl nicht, zumindest nicht mit VBA.

Das einzige "Ereignis" welches du für die einzelnen Menüs hast ist "OnAction". Damit steuerst du ja aber nur welche Funktion nach dem Anklicken aufgerufen wird.

Das die Menüeinträge beim Überfahren mit der Maus blau markiert werden und das sich die Untermenüs automatisch öffnen steuert wohl das Betriebssystem.
 
Schade, dass man das Betriebssystem nicht überreden kann, parallel dazu noch andere Dinge zu tun :)
Naja ok, dann muß ich das wohl weglassen...danke für Deine Hilfe!

Gruß Outi
 
Das einzige was mir hier einfällt ist subclassing, und dann mal schauen welche Windows-Nachrichten ankommen
 
OK dazu muß ich mich erstmal schlau machen.
Könntest Du mir eventuell ein paar hilfreiche Seiten nennen,
bevor ich zu viel unnützes Zeug lese und verwirrter bin als jetzt schon?
Danke!

Gruß Outi
 
Wenn man es mal verstanden hat, ist es eigentlich einfach. Das schwierigste wird sein, die hWnd des Kontext-Menüs zu bekommen
 
Nach ein wenig recherche, konnte ich folgendes herausfinden

Visual Basic:
hWmenu = FindWindow("#32768", ByVal 0)
 
Hm, leider weiß ich nicht, wie ich das anwenden kann!

Edit:
Könntest Du mir damit vielleicht noch ein Wenig weiterhelfen?
 
Zuletzt bearbeitet:
Zurück