|
原帖由 988668 于 2012-8-5 13:14 发表
-----------------------------------------
楼主,请教如何写右键菜单??请看代码:
_SUB WIN1,L30T30W680H600,新窗口1,
MEMO* -rich &MEMO2,L10T10W675H501,1**6789,,0x20,0xFFFFFF#0x008000,12:宋 ...
写成函数。 逗号冲突。 所以现在很多命令支持分号分隔。
SEND 干脆也加个分号分隔符,方便。这样,发送分号就要用『VK_COLON 0xBA 186 :』
_SUB WIN1,L30T30W680H600,新窗口1,
MEMO* -rich &MEMO2,L10T10W675H501,1**6789,,0x20,0xFFFFFF#0x008000,12:宋体
ENVI @&MEMO2.MSG=%WM_RBUTTONDOWN%:CALL @--popmenu MyMenu
_END
_SUB MyMenu
MENU Menu1,复制, CALL OnCOPY //拷贝
MENU -
MENU Menu2,粘贴, CALL OnPAS //粘贴
_END
_SUB OnCOPY
// SEND #0x11_,#0x43_,#0x43^,#0x11^ //Ctrl-C 或
SEND VK_CONTROL_,VK_C_,VK_C^,VK_CONTROL^ //Ctrl-C ,这种形式看到清楚
_END
_SUB OnPAS
// SEND #0x11_,#0x56_,#0x56^,#0x11^ //Ctrl-V 或
SEND VK_CONTROL_,VK_V_,VK_V^,VK_CONTROL^ //Ctrl-V ,这种形式看到清楚
_END
SET ::WM_RBUTTONDOWN =0x0204
win1
2: 哦! 支持空格分隔
MENU Menu1,复制, SEND VK_CONTROL_ VK_C_ VK_C^ VK_CONTROL^ //Ctrl-C 拷贝
3:标准做法:
其实就下面几个消息, 用SENDMSG
SET ::WM_CUT =0x0300
SET ::WM_COPY =0x0301
SET ::WM_PASTE =0x0302
SET ::WM_CLEAR =0x0303
SET ::WM_UNDO =0x0304
ENVI @&MEMO2.SENDMSG=%&WM_CUT% //CUT
ENVI @&MEMO2.SENDMSG=%&WM_COPY% //拷贝
ENVI @&MEMO2.SENDMSG=%&WM_PASTE% //粘贴
ENVI @&MEMO2.SENDMSG=%&WM_CLEAR% //清除
ENVI @&MEMO2.SENDMSG=%&WM_UNDO% //反悔
[ 本帖最后由 2012abc19701 于 2012-8-5 14:55 编辑 ] |
|