简单控件怎么才能弹出右键菜单【已解决】
本帖最后由 eaglelin 于 2014-11-3 17:12 编辑我折腾好长时间才搞明白 。原来 像按钮 标签之类的简单控件是不能发出
WM_NOTIFY的消息。所以要在他们上面弹出右键菜单非常困难
但是像listview就没问题
大家有没有好办法 ? 论坛年龄不小了,这也要问呀,找个高处跳吧 蛋神你这明显是欺负人啊... user3000的码~ 我给转下~~ 善用搜索#include <WinAPIex.au3>
#include <apiconstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Label控件测试", 300, 152)
$Label1 = GUICtrlCreateLabel("标签1", 110, 25, 97, 33, $SS_CENTER)
GUICtrlSetFont(-1, 20)
$handle = DllCallbackRegister("_lable_events", "ptr", "hwnd;uint;long;ptr")
$handle2 = _WinAPI_SetWindowLong(GUICtrlGetHandle($Label1), $GWL_WNDPROC, DllCallbackGetPtr($handle))
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $Label1
;MsgBox(0, "测试", "左键点击")
Case -3 ; $GUI_EVENT_CLOSE
GUIDelete()
DllCallbackFree($handle) ; 必须释放否则程序不会退出
Exit
EndSwitch
WEnd
Func _lable_events($hWnd, $uiMsg, $wParam, $lParam)
Switch $uiMsg
Case $WM_LBUTTONDBLCLK ; 左键双击
MsgBox(64, "提示", "双击了LABLE!")
Case $WM_RBUTTONDOWN ; 右键按下
MsgBox(64, "提示", "右击了LABLE!")
EndSwitch
Return _WinAPI_CallWindowProc($handle2, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_lable_events 再来发个~~~#include <WinAPIex.au3>
#include <apiconstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("控件点击测试", 300, 152)
$Label1 = GUICtrlCreateButton("你敢点我?", 50, 25, 157, 33, $SS_CENTER)
GUICtrlSetFont(-1, 20)
$handle = DllCallbackRegister("_lable_events", "ptr", "hwnd;uint;long;ptr")
$handle2 = _WinAPI_SetWindowLong(GUICtrlGetHandle($Label1), $GWL_WNDPROC, DllCallbackGetPtr($handle))
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $Label1
;MsgBox(0, "测试", "左键点击")
Case -3 ; $GUI_EVENT_CLOSE
GUIDelete()
DllCallbackFree($handle) ; 必须释放否则程序不会退出
Exit
EndSwitch
WEnd
Func _lable_events($hWnd, $uiMsg, $wParam, $lParam)
Switch $uiMsg
Case $WM_LBUTTONDBLCLK ; 左键双击
MsgBox(64, "提示", "你敢双击点我,你敢右击点我看看")
Case $WM_RBUTTONDOWN ; 右键按下
MsgBox(64, "右击LABLE", "你敢右键点我,你敢左键双击看看")
EndSwitch
Return _WinAPI_CallWindowProc($handle2, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_lable_events 回复 2# netegg
AU3的最高处就是这里了
除非去玩C++ 再来发个~~~
austere 发表于 2014-11-3 15:59 http://www.autoitx.com/images/common/back.gif
非常感谢 这个可以的!
这里高人很多哦 ! 回复 7# eaglelin
呵呵,我是新手。。。。 学习学习,不错。
页:
[1]