函数说明

GUICtrlCreateMenuitem

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

GUICtrlCreateMenuitem ( "文本", menuID [, menuentry [, menuradioitem]] )

 

参数

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

 

返回值

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

 

注意

若要设置或修改控件的各种信息请查看 GUICtrlSet....

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

 

相关

GUICtrlSet..., GUIGetMsg

 

示例


#include <GUIConstants.au3>

GUICreate("我的 GUI 之菜单",300,200)

Global $defaultstatus = "Ready"
Global $status

$filemenu = GUICtrlCreateMenu ("文件(&F)")
$fileitem = GUICtrlCreateMenuitem ("打开(&O)",$filemenu)
GUICtrlSetState(-1,$GUI_DEFBUTTON)
$helpmenu = GUICtrlCreateMenu ("?")
$saveitem = GUICtrlCreateMenuitem ("保存(&S)",$filemenu)
GUICtrlSetState(-1,$GUI_DISABLE)
$infoitem = GUICtrlCreateMenuitem ("信息",$helpmenu)
$exititem = GUICtrlCreateMenuitem ("退出(&X)",$filemenu)
$recentfilesmenu = GUICtrlCreateMenu ("最近的文件",$filemenu,1)

$separator1 = GUICtrlCreateMenuitem ("",$filemenu,2)    ; 分隔线

$viewmenu = GUICtrlCreateMenu("查看(&V)",-1,1)  ; 此菜单将出现在 "?" 菜单之前
$viewstatusitem = GUICtrlCreateMenuitem ("状态栏",$viewmenu)
GUICtrlSetState(-1,$GUI_CHECKED)
$okbutton = GUICtrlCreateButton ("确定",50,130,70,20)
GUICtrlSetState(-1,$GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton ("取消",180,130,70,20)

$statuslabel = GUICtrlCreateLabel ($defaultstatus,0,165,300,16,BitOr($SS_SIMPLE,$SS_SUNKEN))

GUISetState ()
While 1
    $msg = GUIGetMsg()
   
    If $msg = $fileitem Then
        $file = FileOpenDialog("打开...",@TempDir,"所有文件(*.*)")
        If @error <> 1 Then GUICtrlCreateMenuitem ($file,$recentfilesmenu)
    EndIf
    If $msg = $viewstatusitem Then
        If BitAnd(GUICtrlRead($viewstatusitem),$GUI_CHECKED) = $GUI_CHECKED Then
            GUICtrlSetState($viewstatusitem,$GUI_UNCHECKED)
            GUICtrlSetState($statuslabel,$GUI_HIDE)
        Else
            GUICtrlSetState($viewstatusitem,$GUI_CHECKED)
            GUICtrlSetState($statuslabel,$GUI_SHOW)
        EndIf
    EndIf
    If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
    If $msg = $infoitem Then Msgbox(0,"信息","仅供测试...")
WEnd
GUIDelete()

Exit