【已解决】控件操作问题
本帖最后由 wsfda 于 2011-6-6 00:42 编辑各位大大好:我想做个小工具,界面如下:
使用的OnEvent 模式
添加按钮和删除按钮都是右键弹出菜单,
请问如何当我点击删除按钮时,删除当前鼠标所在控件上面的按钮
就是不知道怎么判断鼠标是在哪个按钮上面点击的右键,说的比较含糊,不知道大家理解没有,求助 1.WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)消息.
2.消息中使用$hCtlr=GUIGetCursorInfo($hWnd)
3.If $hCtlr<=3 then 建立空白区域的右键菜单
4.Else建立按钮上的菜单,此时控件ID为$hCtlr,此时已经可以为所欲为了. 回复 2# 3mile
谢谢这位大哥好心帮忙,小弟感激不尽,我先去研究啊 楼上大哥,能否给个实例,仔细研究了一下,对这个不太明白,谢谢了 回复 4# wsfda
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiMenu.au3>
Opt("GUIOnEventMode", 1)
Global Enum $idOpen = 1000, $idSave, $idInfo
Local $Button
$Form1 = GUICreate("Form1", 616, 112, 192, 132)
GUISetOnEvent(-3,"_exit")
for $i=0 to 4
$Button[$i] = GUICtrlCreateButton("Button"&$i+1, 16+($i*120), 8, 105, 97)
GUICtrlSetOnEvent(-1,"Button_Click")
Next
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
While 1
Sleep(100)
WEnd
Func _exit()
Exit
EndFunc
Func Button_Click()
msgbox(0,0,"Clicked Button"&@GUI_CtrlId-3+1)
EndFunc
Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
$aa=GUIGetCursorInfo($hWnd)
If $aa<=3 then
Local $hMenu
$hMenu = _GUICtrlMenu_CreatePopup ()
_GUICtrlMenu_InsertMenuItem ($hMenu, 0, "关于", $idOpen)
_GUICtrlMenu_InsertMenuItem ($hMenu, 1, "设置", $idSave)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "", 0)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "退出", $idInfo)
Switch _GUICtrlMenu_TrackPopupMenu ($hMenu, $iwParam,-1,-1,1,1,2)
Case $idOpen
about()
Case $idSave
setup()
Case $idInfo
exit
EndSwitch
_GUICtrlMenu_DestroyMenu ($hMenu)
Return True
Else
Local $hMenu
$hMenu = _GUICtrlMenu_CreatePopup ()
_GUICtrlMenu_InsertMenuItem ($hMenu, 0, "删除快捷方式", $idOpen)
_GUICtrlMenu_InsertMenuItem ($hMenu, 1, "", 0)
_GUICtrlMenu_InsertMenuItem ($hMenu, 2, "打开文件位置", $idSave)
Switch _GUICtrlMenu_TrackPopupMenu ($hMenu, $iwParam,-1,-1,1,1,2)
Case $idOpen
delete($aa)
case $idSave
;~ $pathfile=IniRead("quick.ini","工具",$aa-3,"error")
;~ if $pathfile<>"error" Then
;~ $shell=iniread("quick.ini",$pathfile,1,"")
;~ Run('explorer /select, "' & $shell & '"')
;~ EndIf
EndSwitch
_GUICtrlMenu_DestroyMenu ($hMenu)
Return True
EndIf
EndFunc ;==>WM_CONTEXTMENU
Func about()
msgbox(0,0,"ABout")
EndFunc
Func setup()
msgbox(0,0,"setup")
EndFunc
Func delete($C_id)
GUICtrlDelete($C_id)
EndFunc 学习了。。。。 代码不错。。 good~good~ 收藏了。。。。 另外大哥能不能给个 GUICtrlCreateButton双击的例子,我搜索论坛,都是其他控件的,请给思路或者例子,非常感谢 三笑大大很厉害 不错。三笑的东东。。 Launcher??? 路过。。。 界面很强大啊,正好需要
页:
[1]
2