Un menú es una lista de comandos que se despliegan de una barra de menu o de una ventana arbitraria.
Un item de un menú puede ser un comando normal, o un comando seleccionable con una etiqueta asociada. También existen separadores para una mejor organización.
Para crear un menú sólo debemos de pasarle el nombre que llevará y el estilo.
Los eventos más importantes que genera son los siguientes: EVT_MENU y EVT_MENU_RANGE, que se generan dependiendo de si se activa un comando, o varios, EVT_UPDATE y EVT_UPDATE_UI_RANGE, que se activan cuando un comando seleccionable, o varios para el segundo, cambia su estado, y EVT_MENU_OPEN y EVT_MENU_CLOSE, que se generan cuando el menu se abre/despliega o se cierra/pliega.
La principal función de este componente es Append(), que añade items o componentes al menú. Además podemos encontrar otras como: AppendCheckItem() o AppendRadioItem(), para insertar items de estos tipos en el menú, AppendSeparator(), para insertar un separador, Insert() e InsertSeparator(), para insertar en una posición determinada, Remove(), para eliminar items, GetTitle() y SetTitle() para trabajar con el nombre del menú, GetMenuItems() que devuelve una lista con los items del menú, GetMenuCount(), que devuelve el número de items, etc.