The Menu structure contains functions and structures to create and operate on menus.
structure Menu: sig type HMENU and HBITMAP and HWND and HINSTANCE type RECT = { left: int, top: int, right: int, bottom: int } datatype MenuFlag = MF_BYCOMMAND | MF_BYPOSITION | MF_SEPARATOR | MF_ENABLED | MF_GRAYED | MF_DISABLED | MF_UNCHECKED | MF_CHECKED | MF_USECHECKBITMAPS | MF_STRING | MF_BITMAP | MF_OWNERDRAW | MF_POPUP | MF_MENUBARBREAK | MF_MENUBREAK | MF_UNHILITE | MF_HILITE | MF_DEFAULT | MF_SYSMENU | MF_HELP | MF_RIGHTJUSTIFY | MF_MOUSESELECT datatype MenuIdOrHandle = MenuHandle of HMENU | MenuId of int datatype MenuItemOptions = MFT_MENUBARBREAK | MFT_MENUBREAK | MFT_RADIOCHECK | MFT_RIGHTJUSTIFY | MFT_RIGHTORDER datatype MenuItemType = MFT_BITMAP of HBITMAP | MFT_OWNERDRAW of int | MFT_SEPARATOR | MFT_STRING of string datatype MenuState = MFS_CHECKED | MFS_DEFAULT | MFS_DISABLED | MFS_ENABLED | MFS_GRAYED | MFS_HILITE | MFS_UNCHECKED | MFS_UNHILITE type MenuItemInfo = { menuType: MenuItemType, menuOptions: MenuItemOptions list, state: MenuState list, wID: int, hSubMenu: HMENU option, hbmpChecked: HBITMAP option, hbmpUnchecked: HBITMAP option, itemData: int } val AppendMenu : HMENU * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit val CheckMenuRadioItem : HMENU * int * int * int * MenuFlag -> unit val CreateMenu : unit -> HMENU val CreatePopupMenu : unit -> HMENU val DeleteMenu : HMENU * int * MenuFlag -> unit val DestroyMenu : HMENU -> unit val DrawMenuBar : HWND -> unit val EnableMenuItem : HMENU * int * MenuFlag -> MenuFlag list val GetMenu : HWND -> HMENU datatype GMDIFlags = GMDI_GOINTOPOPUPS | GMDI_USEDISABLED val GetMenuDefaultItem : HMENU * bool * GMDIFlags list -> int val GetMenuItemCount : HMENU -> int val GetMenuItemID : HMENU -> int val GetMenuItemInfo : HMENU * int * bool -> MenuItemInfo val GetMenuItemRect : HWND * HMENU * int -> RECT val GetMenuState : HMENU * int * MenuFlag -> MenuFlag list * int val GetMenuString : HMENU * int * MenuFlag -> string val GetSubMenu : HMENU * int -> HMENU val GetSystemMenu : HWND * bool -> HMENU val HiliteMenuItem : HWND * HMENU * int * MenuFlag list -> unit val InsertMenu : HMENU * int * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit val IsMenu : HMENU -> bool val LoadMenu : HINSTANCE * Resource.RESID -> HMENU val ModifyMenu : HMENU * int * MenuFlag list * MenuIdOrHandle * MenuItemType -> unit val RemoveMenu : HMENU * int * MenuFlag -> unit val SetMenu : HWND * HMENU option -> unit val SetMenuItemInfo : HMENU * int * bool * MenuItemInfo -> unit val InsertMenuItem : HMENU * int * bool * MenuItemInfo -> unit datatype TrackPopupMenuOptions = TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_LEFTALIGN | TPM_CENTERALIGN | TPM_RIGHTALIGN | TPM_TOPALIGN | TPM_VCENTERALIGN | TPM_BOTTOMALIGN | (*TPM_HORIZONTAL | TPM_VERTICAL |*) TPM_NONOTIFY | TPM_RETURNCMD val TrackPopupMenu : HMENU * TrackPopupMenuOptions list * int * int * HWND -> int val SetMenuContextHelpId: HMENU * int -> unit val GetMenuContextHelpId: HMENU -> int end