首页
社区
课程
招聘
[求助]为什么我的右键菜单没有反应???
发表于: 2008-5-8 20:38 7443

[求助]为什么我的右键菜单没有反应???

2008-5-8 20:38
7443
问个问题
我子类化了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日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
看看罗云彬的这段关于菜单的代码 希望对你有帮助
上传的附件:
2008-5-8 23:38
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
哦,谢谢了
现在资源里面定义的那个菜单也可以正常显示了,但是消息也不处理
我怀疑是我对RichEdit控件消息的处理有问题……
我再看看,3Q
2008-5-9 11:06
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
崩溃了~~~
我拿原来帮同学写的一个C语言的记事本,仔细看了一下,好像没有什么地方再添加的了~~~

我在那个记事本的基础上,添加了右键菜单,非常正常…………

我晕了~~~~
2008-5-9 11:35
0
雪    币: 372
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
RC文件不是也要定义的吗
2008-5-10 18:04
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
可以不定义呀~
因为我的在程序里面用CreatePopupMenu创建菜单了呀…………
2008-5-11 01:16
0
游客
登录 | 注册 方可回帖
返回