Autoit      AutoIt上路06-通过鼠标右键菜单控制标签   

AutoIt上路05-通过菜单控制标签的显示和隐藏 http://www.gaohaiyan.com/933.html



  用过了SciTE一定知道,在标签卡右键点击标签时,首先标签被选中,然后弹出菜单。通过这个右键菜单可以快捷的进行操作。



实现方法1:

  在UDF中提供了_GUICtrlTab_HitTest($tabWelcome, $x, $y)方法,可以得到鼠标点击(包括右键)时的标签项目;
_GUICtrlTab_SetCurSel($tabWelcome, $aHit[0])方法可以选择指定标签,原生的MouseClick无法实现的,UDF实现了。

  对于标签选中,我们继续在GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")中实现,就用上面的_GUICtrlTab_HitTest+_GUICtrlTab_SetCurSel。

  然后是右键菜单,为了简单我们使用原生方法 GUICtrlCreateContextMenu,GUICtrlCreateMenuItem,因为原生创建的菜单项可以直接通过 GuiCtrlSetOnEvent 添加点击事件处理;如果使用UDF中 _GUICtrlMenu_CreatePopup 创建弹出菜单,则需要GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")中处理菜单项的响应,很遗憾因在下愚钝未能成功。


实现方法2:
  首先原生创建控件的右键菜单,同上。
  然后右键选中标签时,使用GUIRegisterMsg($WM_CONTEXTMENU, "_WM_CONTEXTMENU")

  这样GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")没有发生改变。


本例使用方式1。讲得不太明了,各位网友仔细研究源码即可:

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设