Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Dialogs - Menus in dialogs.wbt
The PopupMenu UDF takes a | delimited list of menu items and presents them to the user.
#DefineFunction PopupMenu(choices) user32=StrCat(DirWindows(1),"User32.DLL") hwnd=DllHwnd("") DllCall(user32, long:"SetForegroundWindow", long:hwnd) MF_STRING = 0 TPM_RETURNCMD = 256 TPM_LEFTBUTTON = 0 ;create menu hmenu = DllCall(user32,long:"CreatePopupMenu") choicecount=ItemCount(choices,"|") For xx=1 To choicecount thischoice=ItemExtract(xx,choices,"|") DllCall(user32,long:"AppendMenuA",long:hmenu, long:MF_STRING, long:xx, lpstr:thischoice) Next mc = MouseInfo(3) mcx=ItemExtract(1,mc," ") mcy=ItemExtract(2,mc," ") wFlags=TPM_RETURNCMD|TPM_LEFTBUTTON s=DllCall(user32,long:"TrackPopupMenu",long:hmenu, long:wFlags, long:mcx, long:mcy, long:0, long:hwnd, lpnull) ;Destroy Menu DllCall(user32,long:"DestroyMenu",long:hmenu) Return(s) #EndFunction #DefineFunction MyDialogProc(D_Handle,D_Message,D_ControlID,Reserved_0,Reserved_1) MSG_INIT=0 ; The one-time initilization MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton Switch D_Message Case MSG_INIT DialogProcOptions(D_Handle,MSG_BUTTONPUSHED,@TRUE) Break Case MSG_BUTTONPUSHED Switch D_ControlID Case 003 pick=PopupMenu("Notepad|Calc") Switch pick Case 1 ; notepad Run("notepad.exe","") Break Case 2 ; calc Run("calc.exe","") Break EndSwitch Return (-2) EndSwitch Break EndSwitch Return (-1) #EndFunction MyDialogFormat=`WWWDLGED,6.1` MyDialogCaption=`Menu Example` MyDialogX=002 MyDialogY=030 MyDialogWidth=112 MyDialogHeight=078 MyDialogNumControls=004 MyDialogProcedure=`MyDialogProc` MyDialogFont=`DEFAULT` MyDialogTextColor=`DEFAULT` MyDialogBackground=`DEFAULT,DEFAULT` MyDialogConfig=0 MyDialog001=`026,033,034,011,PUSHBUTTON,DEFAULT,"OK",1,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MyDialog002=`001,001,107,011,STATICTEXT,DEFAULT,DEFAULT,DEFAULT,2,DEFAULT,DEFAULT,DEFAULT,"0|255|255"` MyDialog003=`001,001,022,011,PUSHBUTTON,DEFAULT,"Run",2,3,128,"Microsoft Sans Serif|5325|70|34","0|0|0","0|255|255"` MyDialog004=`025,001,022,011,PUSHBUTTON,DEFAULT,"Exit",0,4,128,"Microsoft Sans Serif|5325|70|34","0|0|0","0|255|255"` ButtonPushed=Dialog("MyDialog")
Article ID: W15463
File Created: 2003:10:14:08:00:24
Last Updated: 2003:10:14:08:00:24