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
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;
首先,这个edit控件不是我创建,如果在对话框上加入一个edit控件,你什么也不必做,它本身就会有右键菜单.我想把这个菜单改掉
第二,我不想截获右键消息自己重写一个菜单,我只是想在原有基础上加入一个菜单项
以上各位所讲的办法似乎都是需要自己创建edit,那这个问题就简单了
有没有其他办法,谢谢
替换掉那个Edit的WinProc
--------------------------------------------------------------------------------
The information in this article applies to:Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1
打开一个有EDIT的EXE,在EIDT上右击,看它调用了哪个API,我没空试,也许这个办法不行,我以后再想想.
我试图截获TrackPopupMenu(Ex),截获API比较可靠的方法是
修改模块的IAT,找到TrackPopupMenu的Thunk写成自己的,
但是Edit控件的TrackPopupMenu大概是在User32.dll中内部调用的,模块的IAT中
根本找不到TrackPopupMenu. 也许Edit根本不会调用TrackPopupMenu.
SubApp.exe 是得到系统菜单,这个问题好办.问题关键是无法得到Edit创建的右键
菜单句柄.
APeye.exe 一用就死
现在,无计可施
如果不让它弹出菜单,那简单了,我只要在子类化的WndProc中
截获WM_CONTEXTMENU就可以了嘛
谢谢
偏偏Edit右键菜单就是得不到
以上消息用WH_CALLWNDPROC钩子捕.
但可以捕到WM_CONTEXTMENU和菜单窗口创建时的WM_CREATE,
问题是由这些数据不好转为菜单句柄,就不能动态加菜单子项.
以上消息用WH_CALLWNDPROC钩子捕.
菜单创建时也有WM_CREATE吗?