1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3 4<head> 5<title>Windows Interface Reference: Menu structure</title> 6</head> 7 8<body> 9 10<h1>Menu </h1> 11 12<p>The Menu structure contains functions and structures to create and operate on menus.</p> 13 14<pre>structure Menu: 15 sig 16 type HMENU and HBITMAP and HWND and HINSTANCE 17 type RECT = { left: int, top: int, right: int, bottom: int } 18 19 datatype MenuFlag = 20 MF_BYCOMMAND | MF_BYPOSITION | MF_SEPARATOR | MF_ENABLED | MF_GRAYED | 21 MF_DISABLED | MF_UNCHECKED | MF_CHECKED | MF_USECHECKBITMAPS | MF_STRING | 22 MF_BITMAP | MF_OWNERDRAW | MF_POPUP | MF_MENUBARBREAK | MF_MENUBREAK | 23 MF_UNHILITE | MF_HILITE | MF_DEFAULT | MF_SYSMENU | MF_HELP | 24 MF_RIGHTJUSTIFY | MF_MOUSESELECT 25 26 datatype MenuIdOrHandle = MenuHandle of HMENU | MenuId of int 27 28 datatype MenuItemOptions = 29 MFT_MENUBARBREAK 30 | MFT_MENUBREAK 31 | MFT_RADIOCHECK 32 | MFT_RIGHTJUSTIFY 33 | MFT_RIGHTORDER 34 35 datatype MenuItemType = 36 MFT_BITMAP of HBITMAP 37 | MFT_OWNERDRAW of int 38 | MFT_SEPARATOR 39 | MFT_STRING of string 40 41 datatype MenuState = 42 MFS_CHECKED 43 | MFS_DEFAULT 44 | MFS_DISABLED 45 | MFS_ENABLED 46 | MFS_GRAYED 47 | MFS_HILITE 48 | MFS_UNCHECKED 49 | MFS_UNHILITE 50 51 type MenuItemInfo = 52 { 53 menuType: MenuItemType, 54 menuOptions: MenuItemOptions list, 55 state: MenuState list, 56 wID: int, 57 hSubMenu: HMENU option, 58 hbmpChecked: HBITMAP option, 59 hbmpUnchecked: HBITMAP option, 60 itemData: int 61 } 62 63 val <a 64name="AppendMenu">AppendMenu</a> : HMENU * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit 65 val CheckMenuRadioItem : HMENU * int * int * int * MenuFlag -> unit 66 val <a 67name="CreateMenu">CreateMenu</a> : unit -> HMENU 68 val CreatePopupMenu : unit -> HMENU 69 val DeleteMenu : HMENU * int * MenuFlag -> unit 70 val DestroyMenu : HMENU -> unit 71 val DrawMenuBar : HWND -> unit 72 val EnableMenuItem : HMENU * int * MenuFlag -> MenuFlag list 73 val GetMenu : HWND -> HMENU 74 75 datatype GMDIFlags = GMDI_GOINTOPOPUPS | GMDI_USEDISABLED 76 val GetMenuDefaultItem : HMENU * bool * GMDIFlags list -> int 77 78 val GetMenuItemCount : HMENU -> int 79 val GetMenuItemID : HMENU -> int 80 val GetMenuItemInfo : HMENU * int * bool -> MenuItemInfo 81 val GetMenuItemRect : HWND * HMENU * int -> RECT 82 val GetMenuState : HMENU * int * MenuFlag -> MenuFlag list * int 83 val GetMenuString : HMENU * int * MenuFlag -> string 84 val GetSubMenu : HMENU * int -> HMENU 85 val GetSystemMenu : HWND * bool -> HMENU 86 val HiliteMenuItem : HWND * HMENU * int * MenuFlag list -> unit 87 val InsertMenu : HMENU * int * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit 88 val IsMenu : HMENU -> bool 89 val LoadMenu : HINSTANCE * Resource.RESID -> HMENU 90 val ModifyMenu : HMENU * int * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit 91 val RemoveMenu : HMENU * int * MenuFlag -> unit 92 val SetMenu : HWND * HMENU option -> unit 93 val SetMenuItemInfo : HMENU * int * bool * MenuItemInfo -> unit 94 val InsertMenuItem : HMENU * int * bool * MenuItemInfo -> unit 95 96 datatype TrackPopupMenuOptions = 97 TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_LEFTALIGN | TPM_CENTERALIGN | TPM_RIGHTALIGN | 98 TPM_TOPALIGN | TPM_VCENTERALIGN | TPM_BOTTOMALIGN | (*TPM_HORIZONTAL | TPM_VERTICAL |*) 99 TPM_NONOTIFY | TPM_RETURNCMD 100 val TrackPopupMenu : HMENU * TrackPopupMenuOptions list * int * int * HWND -> int 101 102 val SetMenuContextHelpId: HMENU * int -> unit 103 val GetMenuContextHelpId: HMENU -> int 104 end</pre> 105</body> 106</html> 107