请教高手,如何截获edit控件的右健菜单,加入我的菜单项?谢谢

oldevil 2002-03-13 10:26:01
我挂接了自己的API,截获TrackPopupMenu,但是似乎edit并没有调用这个API
有没有更好的方法?
...全文
94 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldevil 2002-03-15
  • 打赏
  • 举报
回复
你说的菜单窗口创建时的WM_CREATE是什么?
菜单创建时也有WM_CREATE吗?
xlfrd 2002-03-14
  • 打赏
  • 举报
回复
EDIT没有WM_INITMENUPOPUP消息,
但可以捕到WM_CONTEXTMENU和菜单窗口创建时的WM_CREATE,
问题是由这些数据不好转为菜单句柄,就不能动态加菜单子项.
以上消息用WH_CALLWNDPROC钩子捕.



xlfrd 2002-03-14
  • 打赏
  • 举报
回复
EDIT没有WM_INITMENUPOPUP消息,但可以捕到WM_CONTEXTMENU和菜单窗口创建时的WM_CREATE,问题由这些数据不好转为菜单句柄,就不能动态加菜单子项.
以上消息用WH_CALLWNDPROC钩子捕.
蒋晟 2002-03-13
  • 打赏
  • 举报
回复
好像只有挂钩子了
替换掉那个Edit的WinProc
oldevil 2002-03-13
  • 打赏
  • 举报
回复
各位没有明白我的意思,怪我没有说清
首先,这个edit控件不是我创建,如果在对话框上加入一个edit控件,你什么也不必做,它本身就会有右键菜单.我想把这个菜单改掉
第二,我不想截获右键消息自己重写一个菜单,我只是想在原有基础上加入一个菜单项
以上各位所讲的办法似乎都是需要自己创建edit,那这个问题就简单了
有没有其他办法,谢谢
sunny_wz 2002-03-13
  • 打赏
  • 举报
回复

POINT point;
RECT rect;//rect为edit控件所在的区域
case WM_RBUTTONUP
point.x=LOWORD(lParam);
point.y=HIWORD(lParam);
if(point.x>=rect.left&&point.x<=rect.right&&
point.y>=rect.top&&point.y<=rect.bottom)
{
ClinetToScreen(hwnd,&point);
TrackPopupMenu(hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,hwnd,NULL);
}
return 0;
prometheusphinx 2002-03-13
  • 打赏
  • 举报
回复
响应WM_CONTEXTMENU消息
freecutelei 2002-03-13
  • 打赏
  • 举报
回复
给分。
自己继承cedit类.响应on_rbuttondown消息,就可以了.
howard 2002-03-13
  • 打赏
  • 举报
回复
派生一个CEDIT类
oldevil 2002-03-13
  • 打赏
  • 举报
回复
试过,自己调用TrackPopupMenu可以得到WM_INITMENUPOPUP,
偏偏Edit右键菜单就是得不到
蒋晟 2002-03-13
  • 打赏
  • 举报
回复
捕获WM_INITMENUPOPUP呢?(我没有试过捕获其他程序的)
oldevil 2002-03-13
  • 打赏
  • 举报
回复
我刚才说过,我不想改变它的菜单,只想加一个我的菜单项,
如果不让它弹出菜单,那简单了,我只要在子类化的WndProc中
截获WM_CONTEXTMENU就可以了嘛
谢谢
蒋晟 2002-03-13
  • 打赏
  • 举报
回复
不让它TrackPopupMenu,自己弹个菜单出来
oldevil 2002-03-13
  • 打赏
  • 举报
回复
挂钩方法我试过,有个问题:
我试图截获TrackPopupMenu(Ex),截获API比较可靠的方法是
修改模块的IAT,找到TrackPopupMenu的Thunk写成自己的,
但是Edit控件的TrackPopupMenu大概是在User32.dll中内部调用的,模块的IAT中
根本找不到TrackPopupMenu. 也许Edit根本不会调用TrackPopupMenu.
SubApp.exe 是得到系统菜单,这个问题好办.问题关键是无法得到Edit创建的右键
菜单句柄.
APeye.exe 一用就死
现在,无计可施
xlfrd 2002-03-13
  • 打赏
  • 举报
回复
用这个软件http://home.luzhou.net/xlfrd/soft/APeye.zip
打开一个有EDIT的EXE,在EIDT上右击,看它调用了哪个API,我没空试,也许这个办法不行,我以后再想想.
蒋晟 2002-03-13
  • 打赏
  • 举报
回复
SubApp.exe Shows How to Append Menu Items to Other Apps

Q72222


--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧