函数参考


GUICtrlCreateMenuItem

在GUI上创建一个菜单项目控件.

GUICtrlCreateMenuItem ( "文本", 菜单ID [, 菜单编号 [, 菜单单选项目]] )

参数

文本 控件的文本.
菜单ID 定义此子菜单要附加到的目标菜单ID.若此值为 -1 则使用第一级菜单.
菜单编号 [可选参数] 允许定义要创建的菜单项的(次序)编号.编号从0开始.
菜单单选项目 [可选参数] 0(默认) = 创建普通菜单项, 1 = 创建单选菜单项.

返回值

成功: 返回新控件的控件标识符(控件ID).
失败: 返回值为0.

注意/说明

要设置或者修改控件信息,请参考 GUICtrlUpdate....

若 文本 参数是空文本 "" 则表示创建分隔线. GUICtrlSetState 可用于其它控件,请看示例.

相关

GUICtrlUpdate..., GUIGetMsg, GUICtrlCreateMenu, GUICtrlCreateContextMenu

示例/演示


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

_Main()

Func _Main()
    Local $iCancel, $iExit, $iFileItem, $iFileMenu, $iHelpMenu, $iInfoItem
    Local $iRecentFilesMenu, $iStatusLabel, $iViewMenu, $iViewStatusItem, $sFilePath, $sStatus = "Ready"

    GUICreate("我的图形菜单", 300, 200)

    $sStatus = "Ready"

    $iFileMenu = GUICtrlCreateMenu("文件(&F)")
    $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);调整指定控件为选中状态
    GUICtrlCreateButton("确定", 50, 130, 70, 20)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $iCancel = GUICtrlCreateButton("取消", 180, 130, 70, 20)

    $iStatusLabel = GUICtrlCreateLabel($sStatus, 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))

    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $iCancel, $iExit
                Exit

            Case $iInfoItem
                MsgBox(4160, "Info", "Only a test...")

            Case $iFileItem
                $sFilePath = FileOpenDialog("选择一个文件...", @TempDir, "All (*.*)")
                If @error Then
                    ContinueLoop
                EndIf
                GUICtrlCreateMenuItem($sFilePath, $iRecentFilesMenu)

            Case $iViewStatusItem
                If BitAND(GUICtrlRead($iViewStatusItem), $GUI_CHECKED) = $GUI_CHECKED Then
                    GUICtrlSetState($iViewStatusItem, $GUI_UNCHECKED)
                    GUICtrlSetState($iStatusLabel, $GUI_HIDE)
                Else
                    GUICtrlSetState($iViewStatusItem, $GUI_CHECKED)
                    GUICtrlSetState($iStatusLabel, $GUI_SHOW)
                EndIf
        EndSwitch
    WEnd
EndFunc   ;==>_Main