| |

Fortgeschrittene ProgrammierungAPI: TrackPopupMenuEx - Keine Rückgabe bei Focus-verlust | |  | Autor: teccer | Datum: 16.08.07 13:17 |
| Hallo,
ich verwende folgende Routine, um ein PopUp anzuzeigen. Leider kommt es mal vor, dass man das Menü nicht haben wollte. So klickt man auf irgendeinen anderen bereich auf dem Desktop, in der Erwartung, dass das Menü verschwindet und mal als Return die 0 bekommt. Das funktioniert bei mir nicht. Mache ich etwas falsch. Es kann nicht sein, dass ich erst einmal da irgendwo im menü etwas anklicken muss, damit ich dann neben das Menü klicke und es verschwindet.
Public Function Show(Optional ByVal iFormHwnd As Long = -1, Optional ByVal x As _
Long = -1, Optional ByVal Y As Long = -1, Optional ByVal iControlHwnd As Long _
= -1) As Long
Dim iHwnd As Long, iX As Long, iY As Long
If iFormHwnd = -1 Or iFormHwnd = 0 Then
Dim iDesktopHwnd As Long, iChildHwnd As Long, iCurrentID As Long, _
iChildID As Long
iDesktopHwnd = GetDesktopWindow()
iChildHwnd = GetWindow(iDesktopHwnd, GW_CHILD)
iCurrentID = GetCurrentProcessId()
Do While iChildHwnd
GetWindowThreadProcessId iChildHwnd, iChildID
If iChildID = iCurrentID Then Exit Do ' Snagged
iChildHwnd = GetWindow(iChildHwnd, GW_HWNDNEXT)
Loop
If iChildHwnd = 0 Then
Show = -1
Exit Function
End If
iHwnd = iChildHwnd
Else
iHwnd = iFormHwnd
End If
If iControlHwnd <> -1 Then
Dim rt As RECT
GetWindowRect iControlHwnd, rt
iX = rt.Left
iY = rt.Bottom
Else
Dim pt As POINT
GetCursorPos pt
If x = -1 Then iX = pt.x Else: iX = x
If Y = -1 Then iY = pt.Y Else: iY = Y
End If
Show = TrackPopupMenuEx(piHwnd, TPM_RETURNCMD Or TPM_RIGHTBUTTON, iX, iY, _
iHwnd, ByVal 0&)
End Function |  |
 API: TrackPopupMenuEx - Keine Rückgabe bei Focus-verlust | 874 | teccer | 16.08.07 13:17 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge 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 Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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-2025 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
|
|