找回密码
 加入
搜索
查看: 5918|回复: 15

[AU3基础] 【已解决】如何响应 _GUICtrlMenu_AddMenuItem菜单事件

  [复制链接]
发表于 2012-1-15 20:04:06 | 显示全部楼层 |阅读模式
本帖最后由 xyhqqaa 于 2012-1-30 02:04 编辑

新手求助,如何响应  _GUICtrlMenu_AddMenuItem菜单事件。。。
#include <GuiToolbar.au3>
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <ImageListConstants.au3>
#include <GuiMenu.au3>
#include<SecurityConstants.au3>
#include <GuiImageList.au3>

Local $hToolbar, $hMenu
Local Enum $idNew = 1000, $idOpen
$hGUI = GUICreate("Toolbar", 323,47 , Default, Default,Bitor($WS_CAPTION,$WS_SYSMENU))
$ImageList1 = _GUIImageList_Create(16 ,16, 5)
$ico=_GUIImageList_AddIcon($ImageList1, "G:\网盘\My DBank\网址ico\迅雷.ico", 0, True)
$Input = GUICtrlCreateInput("",55, 3, 201, 42)
GUICtrlSetFont(-1, 20, 400, 0, "Arial")
$Button = GUICtrlCreateButton("搜索", 257, 2, 65, 43)
$hToolbar = _GUICtrlToolbar_Create($hGUI)
$sousuo1 = _GUICtrlToolbar_AddString($hToolBar, "迅雷")
_GUICtrlToolbar_SetExtendedStyle($hToolbar, $TBSTYLE_EX_DRAWDDARROWS)
_GUICtrlToolbar_SetImageList($hToolBar, $ImageList1)
_GUICtrlToolbar_AddButton($HToolBar, 0,$ico , 0, $BTNS_DROPDOWN)
GUISetState()

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
EndSwitch
                
WEnd

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $tNMHDR, $iCode, $hMenu,$baidu
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $iCode = DllStructGetData($tNMHDR, "Code")
    If $iCode = $TBN_DROPDOWN Then
        $hMenu = _GUICtrlMenu_CreatePopup()
        _GUICtrlMenu_AddMenuItem($hMenu, "谷歌",$baidu)
        _GUICtrlMenu_AddMenuItem($hMenu, "百度")
        _GUICtrlMenu_AddMenuItem($hMenu, "雅虎")
                _GUICtrlMenu_AddMenuItem($hMenu,"必应")
                 _GUICtrlMenu_AddMenuItem($hMenu, "")
        _GUICtrlMenu_AddMenuItem($hMenu, "迅雷")
                _GUICtrlMenu_AddMenuItem($hMenu,"电驴")
                _GUICtrlMenu_TrackPopupMenu($hMenu, $hGUI)
        _GUICtrlMenu_DestroyMenu($hMenu)
EndIf
Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY
当我切换到百度的时候。。如何响应事件。。。。。搜索了论坛。。好像没找到。。。- -,试过几个,。。好像没响应

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-1-15 20:21:10 | 显示全部楼层
是注册WM_COMMAND响应吧
发表于 2012-1-15 20:22:21 | 显示全部楼层
怎么换方案了,不伸缩了…
 楼主| 发表于 2012-1-15 20:26:10 | 显示全部楼层
回复 3# afan


    囧。。afan哥。。。。缩到我JJ疼。- -  换个简单点的方法  。。一直谢谢您的帮忙。。。
 楼主| 发表于 2012-1-15 20:27:51 | 显示全部楼层
回复 2# seniors


    哦哦。。。我去搜索相关资料看看。。谢谢
发表于 2012-1-15 20:34:45 | 显示全部楼层
_GUICtrlMenu_AddMenuItem($hMenu, "谷歌",$google)
_GUICtrlMenu_AddMenuItem($hMenu, "百度",$baidu)
_GUICtrlMenu_AddMenuItem($hMenu, "雅虎",$yahoo)
_GUICtrlMenu_AddMenuItem($hMenu,"必应",$bing)
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Switch $iwParam
                Case $google
                        ;对应要做的
                Case $baidu
                        ;对应要做的
                Case $bing
                        ;对应要做的
                Case $yahoo
                        ;对应要做的
        EndSwitch
EndFunc   ;==>WM_COMMAND

应该是这样的吧

评分

参与人数 2金钱 +42 收起 理由
xyhqqaa + 22 谢谢
afan + 20

查看全部评分

发表于 2012-1-15 20:50:37 | 显示全部楼层
前面先 Local Enum $google = 2000, $baidu, $yahoo, $bing 下,就齐了~

评分

参与人数 1金钱 +22 收起 理由
xyhqqaa + 22

查看全部评分

发表于 2012-1-15 20:56:56 | 显示全部楼层
谢谢A版补充
_GUICtrlMenu_AddMenuItem()没怎么用过
发表于 2012-1-16 10:24:38 | 显示全部楼层
界面很炫啊
发表于 2012-1-16 15:09:16 | 显示全部楼层
看截图感觉还真不错啊,期待楼主的完工!
发表于 2012-1-16 15:15:11 | 显示全部楼层
搜索按钮是多余的。
还可以悬停伸缩LZ的JJ。
 楼主| 发表于 2012-1-18 13:52:30 | 显示全部楼层
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiMenu.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$hGUI = GUICreate("Form2", 413, 298, 302, 218)
GUISetOnEvent($GUI_EVENT_CLOSE, "GUIClose")
$Button1 = GUICtrlCreateButton("Button1", 168, 96, 105, 41)
GUICtrlSetOnEvent(-1, "Button1Click")
 
Global Enum $id1 = 1000, $id2, $id3
 
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
 
While 1
        Sleep(100)
WEnd
 
Func Button1Click()
        GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
        $hMenu = _GUICtrlMenu_CreatePopup()
        _GUICtrlMenu_AddMenuItem($hMenu, "菜单1", $id1)
        _GUICtrlMenu_AddMenuItem($hMenu, "菜单2", $id2)
        _GUICtrlMenu_AddMenuItem($hMenu, "菜单3", $id3)
        _GUICtrlMenu_TrackPopupMenu($hMenu, $hGUI)
        _GUICtrlMenu_DestroyMenu($hMenu)
EndFunc   ;==>Button1Click
 
Func GUIClose()
        Exit
EndFunc   ;==>GUIClose
 
Func MyFunc1($i)
        MsgBox(0, "Hello", "你点了菜单" & $i)
EndFunc   ;==>MyFunc1
 
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Switch $iwParam
                Case $id1
                        MyFunc1(1)
                Case $id2
                        MyFunc1(2)
                Case $id3
                        MyFunc1(3)
        EndSwitch
EndFunc   ;==>WM_COMMAND
这是别人的一个例子。。。。还在纠结大家的帮助。。语法错误没成功
 楼主| 发表于 2012-1-18 13:54:12 | 显示全部楼层
现在纠结在这段。。。意思还是没搞懂。。。。定义下拉功能?求指教
Local $tNMHDR, $iCode, $hMenu,$baidu

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)

    $iCode = DllStructGetData($tNMHDR, "Code")

    If $iCode = $TBN_DROPDOWN Then
 楼主| 发表于 2012-1-18 14:57:26 | 显示全部楼层
回复 11# afan


   哥。。。理解失败。。。无法相应事件。。。囧
发表于 2012-1-18 14:58:56 | 显示全部楼层
回复 3# afan
afan, 终于在群里知道lz的意思了,他要的效果是在点击下拉的时候才添加菜单项
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 16:42 , Processed in 0.111500 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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