本帖最后由 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, "資訊", "只是一個測試...") |