| |
|
|
Jac de Lad | Wie um alles in der Welt ermittel ich das Handle eines Popupmenüs, das ich mit TrackMenu anzeige (um anschließend ein Item per CheckMenuItem zu checken? |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.09.2006 ▲ |
|
|
|
|
| Hallo Jack...
Selbst erstellen? KompilierenMarkierenSeparierenWindowstyle 31+512
Windowtitle "Trackmenü mit Checkfunktion über API"
Window 0,0-640,440
DEF @CreatePopupMenu(0) !"USER32","CreatePopupMenu"
DEF @AppendMenuEx(4) !"USER32","AppendMenuA"
DEF @TrackPopupMenu(7) !"USER32","TrackPopupMenu"
DEF @CheckMenuItem(3) !"USER32","CheckMenuItem"
Def @DestroyMenu(1) !"USER32","DestroyMenu"
Declare Checkmerker%
Declare Menuhandle&,ITEM$
Das Menü wird erzeugt
LET Menuhandle&=@CreatePopupMenu()
LET Item$="&Messagebox"
@AppendMenuEx(Menuhandle&,0,101,@ADDR(ITEM$))
LET Item$="&Check"
@AppendMenuEx(Menuhandle&,0,102,@ADDR(ITEM$))
While %Menuitem<>-2
Waitinput
IF @equ(%MouseKey,2) Rechte Maustaste gedrückt?
@TrackPopupMenu(Menuhandle&,0,%mousex+5,%Mousey-10,0,%HWND,0) Menü wird angezeigt..
IF @equ(%MENUITEM,102)
LET CHECKMERKER%=@NOT(Checkmerker%) Zustandsänderung merken...
@CheckMenuItem(Menuhandle&,102,@mul(Checkmerker%,8)) Ähnlich wie der Befehl Checkmenü!
ELSEIF @equ(%MENUITEM,101)
@Messagebox("Menüpunkt eins geklickt!","Hinweis",64)
ENDIF
endif
wend
@DestroyMenu(Menuhandle&) Speicher freigeben
Gruß
Andreas |
|
|
| |
|
|
|
Jac de Lad | Danke, ich probiers!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.09.2006 ▲ |
|
|
|