| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 1051: Menü per API-Befehl öffnen | | | Autor: cromit | Tipp anzeigenDatum: 24.05.12 07:55 |
| Toller Tipp. Funktioniert prima.
Bis auf eins:
Wenn ich ein Menü per Maus öffnen, lassen sich per Code SubMenu-Einträge ändern mit automatischem refresh, während das Menü offen ist. Ich nutze dies z.B. um Bluetooth-Gerät in Reichweite zu suchen direkt im Menü darzustellen. Funktioniert prima.
Nur leider, wenn ich ein Menü mittels dieses Tipps öffne,
dann ist das Menü wie eingefroren. Aktualisierungen werden erst durchgeführt, wenn man erneut mit der Maus das Menü öffnet.
Das ist schade, da ich das Menü offen lassen wollte, wenn dort jemand den Menüpunkt "Nach Bluetooth-Geräten suchen" anklickt, um die gefundenen Geräte direkt aufzulisten.
Übrigens hätte ich noch eine nette und einfache Erweiterung zu obigem Tipp (siehe Tipp1409):
'Deklaration
Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As _
Long) As Long
Private Const SM_CYMENUSIZE = 55
'Ergänzung in Command_Click
Dim nMenuBarHeight As Long
nMenuBarHeight = GetSystemMetrics(SM_CYMENUSIZE)
'Diese Zeile ersetzen:
nResult = TrackPopupMenu(ByVal hSubMenu, lFlags, .left, .top + 18, 0&, Me.hWnd, _
0&)
'durch
nResult = TrackPopupMenu(ByVal hSubMenu, lFlags, .left, .top + nMenuBarHeight, _
0&, Me.hWnd, 0&) Damit wird das Menü dann auch tatsächlich an gleicher stelle geöffnet, wie das Original.
Gruß
cromit | |
Re: Menü per API-Befehl öffnen | | | Autor: cromit | Datum: 24.05.12 08:37 |
| Hab noch etwas anderes versucht:
Wenn ich das Menü per Tasten-Kombination (z.B. ALT+h) per Hand öffne,
wird der Menü-Refresh bei offenem Menü wunderbar durchgeführt.
Führe ich dies aber per Code durch:
'ALT+h da das "H" in meinem Menü "highlighted" is
SendKeys "%h", true ... dann ist das Menü wiederum eingefroren und macht keine Refreshs!? | |
Re: Menü per API-Befehl öffnen | | | Autor: cromit | Datum: 24.05.12 08:39 |
| Ok, nun hab ich es doch noch mit dem SendKeys hinbekommen.
Es muss lauten:
'ALT+h da das "H" in meinem Menü "highlighted" is
SendKeys "%h", false Also nicht auf das Ausführen des SendKeys warten (=false).
So, nun wüsste ich zu gern, wie ich das ohne SendKeys hinbekomme?
Vielleicht hat ja jemand noch eine Idee.
Gruß
cromit
Beitrag wurde zuletzt am 24.05.12 um 08:41:38 editiert. | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|