WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Sample Code Demonstrates How to Create Simple Popup Menus

Keywords:      popup menus

The following sample code shows how to create simple Popup menus when the user right-clicks:
#DefineFunction CreatePopupMenu()
user32=StrCat(DirWindows(1),"User32.DLL")
return DLLCall(user32,long:"CreatePopupMenu")
#EndFunction

#DefineFunction DestroyMenu(hmenu)
user32=StrCat(DirWindows(1),"User32.DLL")
return DLLCall(user32,long:"DestroyMenu",long:hmenu)
#EndFunction

#DefineFunction AppendMenu(hmenu, wFlags, wIDNewItem, lpNewItem)
user32=StrCat(DirWindows(1),"User32.DLL")
return DLLCall(user32,long:"AppendMenuA",long:hmenu, long:wFlags, long:wIDNewItem, lpstr:lpNewItem)
#EndFunction

#DefineFunction TrackPopupMenu(hmenu, wFlags, x, y, nReserved, hwnd, rect)
user32=StrCat(DirWindows(1),"User32.DLL")
dllCall(user32, long:"SetForegroundWindow", long:hwnd) 
return DLLCall(user32,long:"TrackPopupMenu",long:hmenu, long:wFlags, long:x, long:y, long:nReserved, long:hwnd, long:rect)
#EndFunction

MF_STRING = 0
TPM_RETURNCMD = 256
TPM_LEFTBUTTON = 0

hwnd=dllhwnd("")

;create menu
hmenu = CreatePopupMenu()
AppendMenu(hmenu, MF_STRING, 1, "Edit")
AppendMenu(hmenu, MF_STRING, 2, "Exit")

boxopen("", "")

:begin
s=0
while s==0
  if MouseInfo(4)==1 ;right click
    ;mouse coordinates
    mc = MouseInfo(3)
    s = TrackPopupMenu(hmenu, TPM_RETURNCMD|TPM_LEFTBUTTON, itemextract(1, mc, " "), itemextract(2, mc, " "), 0, hwnd, 0)
	 DestroyMenu(hmenu) ;???? Added 11/03/2004
  endif
endwhile

switch s
  
  case 1 ;edit
    message("", "edit")
    break

  case 2 ;exit
    message("", "exit")
    DestroyMenu(hmenu)
    boxdestroy(1)
    exit
    break

endswitch
goto begin

;set MIIM_SUBMENU  MENUITEMINFO 
;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_39f3.asp

;insert
;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_4c6l.asp

Article ID:   W15285
File Created: 2004:11:03:08:59:24
Last Updated: 2004:11:03:08:59:24