问个问题
我子类化了RichEdit控件
然后在里面处理了右键的消息
但是,右键菜单没有反应,点了之后没有任何改变
_RichEditProc proc uses ebx esi edi hWnd,uMsg,wParam,lParam
LOCAL @stPoint:POINT
mov eax,uMsg
.if eax == WM_RBUTTONDOWN
invoke GetCursorPos,addr @stPoint
invoke TrackPopupMenu,hPopMenu,TPM_RIGHTBUTTON,@stPoint.x,@stPoint.y,0,hWnd,NULL
.else
invoke CallWindowProc,hOldWndProc, hWnd, uMsg, wParam, lParam
.endif
ret
_RichEditProc endp
创建菜单的代码是这样的:
invoke CreatePopupMenu
mov hPopMenu,eax
invoke AppendMenu,hPopMenu,MF_STRING,IDM_COPY,CTXT("复制")
invoke AppendMenu,hPopMenu,MF_STRING,IDM_PASTE,CTXT("粘贴")
invoke AppendMenu,hPopMenu,MF_STRING,IDM_CUT,CTXT("剪切")
我的消息处理部分是这样的:
.elseif ax == IDM_COPY
invoke SendMessage,hWinEdit, WM_COPY, 0, 0
.elseif ax == IDM_PASTE
invoke SendMessage,hWinEdit, WM_PASTE, 0, 0
.elseif ax == IDM_CUT
invoke SendMessage,hWinEdit, WM_CUT, 0, 0
.endif
IDM_CUT、IDM_COPY、IDM_PASTE这几个常量我仅仅在开头用equ定义了一下,在别处就没再出现过了?
是不是这地方有问题???
感觉很纳闷……
我也试着在资源里面定义菜单,然后再获取菜单句柄,然后再调用TrackPopMenu,但是,弹出一个细长条,可以看出有三个菜单项,但是一个字都没有,而且极窄,就是没有文字,而且点击这几个菜单项也是没有反应…………
不知道是哪儿出问题了?
3Q~
[培训]科锐逆向工程师培训第53期2025年7月8日开班!