Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TrackPopupMenuEx emulieren (https://www.delphipraxis.net/193790-trackpopupmenuex-emulieren.html)

EWeiss 9. Sep 2017 09:10


TrackPopupMenuEx emulieren
 
Normale Funktion

Delphi-Quellcode:
    GetCursorPos(p);
    MenuWahl := TrackPopupMenuEx(hPopupMenu, TPM_RETURNCMD, p.x, p.y, WinHandle, nil);
    DestroyMenu(hPopupMenu);

    if MenuWahl then
      SendMessage(WinHandle, WM_COMMAND, Makelong(word(MenuWahl), 0), 0);
TPM_RETURNCMD.. gibt zurück ob ein Item geklickt wurde. In dem Fall ist MenuWahl True

in
Delphi-Quellcode:
word(MenuWahl)


befindet sich die ID von dem Item das geklickt wurde.
Wie kann ich jetzt diese Funktion emulieren ? Mir erschließt sich nicht wo bzw. wie dieser wert einem LongBool zugewiesen wird.

Denn MenuWahl gibt ja eigentlich den Wert True\False zurück.

PS:
Es geht mir nicht um die Funktion TrackPopupMenuEx sondern um die Emulation davon.
bsp..
Delphi-Quellcode:
function TSkinPopUpMenu.TrackPopupMenu(WinHandle: HWND; fuFlags: UINT; Left, Top, Width, Height: Integer): BOOL;


bin mir jetzt nicht sicher ob ich in meinem Fall überhaupt ein Flag benötige.
Ok sind jetzt zwei Fragen in einer.

Ich könnte jetzt die Funktion ändern
Delphi-Quellcode:
function TSkinPopUpMenu.TrackPopupMenu(WinHandle: HWND; var Returncm: Integer; Left, Top, Width, Height: Integer): BOOL;

dann würde sich die ID in Returncmd befinden wäre aber dann keine Emulation der eigentlichen Funktion

OK!
Hat sich erledigt.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz