#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

Local $iFileMenu, $iFileItem, $sFilePath, $iStatusBar
Local $iHelpMenu, $iInfoItem, $iExit, $iRecentFilesMenu, $hGui
Local $iViewMenu, $iViewStatusItem, $iStyleitem, $iCancel, $iBtnOK
Local $iRadioitem1, $iRadioitem2, $iRadioitem3, $iRadioitem4

$hGui = GUICreate("Элемент меню в GUI", 300, 200)

$iFileMenu = GUICtrlCreateMenu("&Файл")
$iFileItem = GUICtrlCreateMenuItem("Открыть", $iFileMenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$iHelpMenu = GUICtrlCreateMenu("?")
GUICtrlCreateMenuItem("Сохранить", $iFileMenu)
GUICtrlSetState(-1, $GUI_DISABLE)
$iInfoItem = GUICtrlCreateMenuItem("Информация", $iHelpMenu)
$iExit = GUICtrlCreateMenuItem("Выход", $iFileMenu)
$iRecentFilesMenu = GUICtrlCreateMenu("Последние файлы", $iFileMenu, 1)

GUICtrlCreateMenuItem("", $iFileMenu, 2) ; создаёт разделительную линию

$iViewMenu = GUICtrlCreateMenu("Вид", -1, 1) ; Создан до элемента меню "?"
$iViewStatusItem = GUICtrlCreateMenuItem("Строка состояния", $iViewMenu)
GUICtrlSetState(-1, $GUI_CHECKED)
$iStyleitem = GUICtrlCreateMenuItem("Стиль GUI POPUP", $iViewMenu)
GUICtrlCreateMenuItem("", $iViewMenu)
$iRadioitem1 = GUICtrlCreateMenuItem("Радио1", $iViewMenu, -1, 1)
$iRadioitem2 = GUICtrlCreateMenuItem("Радио2", $iViewMenu, -1, 1)
$iRadioitem3 = GUICtrlCreateMenuItem("Радио3", $iViewMenu, -1, 1)
GUICtrlSetState(-1, $GUI_CHECKED)
$iRadioitem4 = GUICtrlCreateMenuItem("Радио4", $iViewMenu, -1, 1)

$iBtnOK = GUICtrlCreateButton("OK", 60, 120, 80, 25)
GUICtrlSetState(-1, $GUI_FOCUS)
$iCancel = GUICtrlCreateButton("Отмена", 160, 120, 80, 25)

$iStatusBar = GUICtrlCreateLabel('Строка состояния', 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))

GUISetState()
While 1
	Switch GUIGetMsg()
		Case $iFileItem
			$sFilePath = FileOpenDialog("Выберите файл...", @TempDir, "Все (*.*)", 3, '', $hGui)
			If Not @error Then GUICtrlCreateMenuItem($sFilePath, $iRecentFilesMenu)
		Case $iViewStatusItem ; Событие при клике на пункте меню "Строка состояния"
			If BitAND(GUICtrlRead($iViewStatusItem), $GUI_CHECKED) = $GUI_CHECKED Then ; Если галочка в наличии, тогда
				GUICtrlSetState($iViewStatusItem, $GUI_UNCHECKED) ; Убирает галочку
				GUICtrlSetState($iStatusBar, $GUI_HIDE) ; Скрывает строку состояния
			Else ; Иначе
				GUICtrlSetState($iViewStatusItem, $GUI_CHECKED) ; Ставит галочку
				GUICtrlSetState($iStatusBar, $GUI_SHOW) ; Показывает строку состояния
			EndIf
		Case $iStyleitem
			If BitAND(GUICtrlRead($iStyleitem), $GUI_CHECKED) = $GUI_CHECKED Then
				GUICtrlSetState($iStyleitem, $GUI_UNCHECKED)
				GUISetStyle($GUI_SS_DEFAULT_GUI)
			Else
				GUICtrlSetState($iStyleitem, $GUI_CHECKED)
				GUISetStyle(BitOR($WS_BORDER, $WS_POPUP, $WS_SYSMENU))
			EndIf
		Case $iInfoItem
			MsgBox(64, "Информация", "Изменение цвета меню смотрите в примере GUICtrlGetHandle", 0, $hGui)
		Case $GUI_EVENT_CLOSE, $iCancel, $iExit
			ExitLoop
	EndSwitch
WEnd
GUIDelete()