找回密码
 加入
搜索
查看: 1696|回复: 4

[AU3基础] 如何对GUICtrlCreateMenu建立的MENU进行click的操作?[已解决]

[复制链接]
发表于 2016-10-22 11:16:06 | 显示全部楼层 |阅读模式
本帖最后由 kk_lee69 于 2016-10-26 21:28 编辑

如何对GUICtrlCreateMenu建立的MENU进行click的操作?
如何 利用一个 BUTTON 按钮  对 自己使用GUICtrlCreateMenu建立的MENU进行click的操作?
我想用一个 BUTTON 按钮 ,按下后 自动模拟  对自己建立的 MENU 上面的某个项目 进行 点击 click的操作??

试过了 ControlClick ("","",$MenuItemA41)  没有作用
该怎么作  才可以呢??


補充 代碼:

#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("我的菜單 GUI", 300, 200)

    $sStatus = "準備就緒"

    $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)
    $BUTTON1=GUICtrlCreateButton("模擬按下按鈕", 50, 130, 100, 20)
    GUICtrlSetState(-1, $GUI_FOCUS)


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

    GUISetState(@SW_SHOW)

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

            Case $iInfoItem
                MsgBox(64, "資訊", "只是一個測試...")

            Case $iFileItem
                $sFilePath = FileOpenDialog("選擇檔...", @TempDir, "全部 (*.*)")
                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
                        
               Case $BUTTON1
                                 
                  ControlClick ("","",$iInfoItem)
                                 
        EndSwitch
    WEnd
EndFunc   ;==>_Main




如何 按下 $BUTTON1 會模擬點擊  $iInfoItem   彈出   MsgBox(64, "資訊", "只是一個測試...")
发表于 2016-10-22 15:20:40 | 显示全部楼层
WinMenuSelectItem("","","幫助","信息")
 楼主| 发表于 2016-10-22 15:44:17 | 显示全部楼层
回复 2# zghwelcome

果然可以ㄟ

怪了 我記得我也測試過這個  不成功

我在試看看  感謝!!
 楼主| 发表于 2016-10-22 15:46:44 | 显示全部楼层
回复 2# zghwelcome

我知道了 我測試的時候 字打錯了 @@  

果然這樣就可以了  感謝 幫助
发表于 2017-1-11 07:09:19 | 显示全部楼层
共享与帮助是本论坛最好的传统
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 11:13 , Processed in 0.075116 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表