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