效果图:
源码:.版本 2
.子程序 __启动窗口_鼠标右键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 ret, 整数型
.局部变量 mhwnd, 整数型, , , 父菜单句柄
mhwnd = CreatePopupMenu ()
AppendMenuA (mhwnd, 0, 1, “剪切”)
AppendMenuA (mhwnd, 0, 2, “复制”)
AppendMenuA (mhwnd, 0, 3, “粘贴”)
ret = TrackPopupMenuEx (mhwnd, 位或 (0, 256, 2), 取鼠标水平位置 (), 取鼠标垂直位置 (), 取窗口句柄 (), 0)
.如果真 (ret = 1)
信息框 (“我被点击了1”, 0, , )
.如果真结束
.如果真 (ret = 2)
信息框 (“我被点击了2”, 0, , )
.如果真结束
.如果真 (ret = 3)
信息框 (“我被点击了3”, 0, , )
.如果真结束
DestroyMenu (mhwnd)
DLL:.版本 2
.DLL命令 CreatePopupMenu, 整数型, "user32.dll", "CreatePopupMenu", , 创建空白弹出式菜单,返回菜单句柄
.DLL命令 AppendMenuA, 整数型, "user32.dll", "AppendMenuA", , 添加菜单项,非零表示成功,零表示失败
.参数 菜单句柄, 整数型, , hMenu,菜单句柄
.参数 菜单常数标志, 整数型, , wFlags,参见相关帮助
.参数 新菜单条目ID, 整数型, , wIDNewItem,指定菜单条目的新命令ID
.参数 标志值, 文本型, , lpNewItem,参见相关帮助
.DLL命令 TrackPopupMenuEx, 整数型, "user32.dll", "TrackPopupMenuEx", , 该函数在指定位置显示快捷菜单,并跟踪菜单项的选择,与TrackPopupMenu相似,只是它提供了额外的功能
.参数 菜单句柄, 整数型, , 弹出式菜单的句柄
.参数 标志, 整数型, , 定位标志和鼠标追踪标志的组合。参考TrackPopupMenu,另外还包括两个标志:TPM_HORIZONTAL或TPM_VERTICAL。参考lpTPMParams参数的说明
.参数 横坐标, 整数型, , 定义了弹出式菜单位置的一个x,y点(n1,n2),用屏幕坐标表示
.参数 纵坐标, 整数型, , 定义了弹出式菜单位置的一个x,y点(n1,n2),用屏幕坐标表示
.参数 窗口句柄, 整数型, , 用于接收弹出式菜单命令的窗口的句柄。应该使用特定窗体的窗口句柄,该窗体有一个菜单能够与弹出式菜单一样接收相同的命令ID集
.参数 扩展参数结构, , , TPMPARAMS,指向一个TPMPARAMS结构的指针。这个结构包含了一个矩形,规定了不能由这个弹出式菜单覆盖的区域。如果在un参数中指定了TPM_HORIZONTAL标志,windows就会试着设置水平位置,将弹出式菜单垂直移到这个矩形的外部。如指定了TPM_VERTICAL,那么windows会试着水平移动弹出式菜单的位置
.DLL命令 DestroyMenu, 整数型, "user32.dll", "DestroyMenu", , 清除菜单
.参数 预删除的菜单, 整数型, , hMenu,欲删除菜单的句柄