wm5 下 怎么获得另一个程序右软健的菜单句柄啊?

tuwen   2007-12-4 20:28 楼主
想自己编写程序控制 ppc上 activesync的菜单

CWnd* pWnd=FindWindowW(NULL,L"ActiveSync");

HWND hwndMB = SHFindMenuBar (pWnd->m_hWnd);

已经得到menubar的句柄了  下面该怎么写呢


查了MSDN 说是

        HMENU hmenu = (HMENU)::SendMessage(hwndMB, SHCMBM_GETSUBMENU, 0,
                           ID_SK2);
可以,但是右软健的ID(就是最后一个参数ID_SK2)根本不知道,该怎么办

回复评论 (3)

我记得SHFindMenuBar是找不到应用程序的menu handle,那个返回的是没用的东西。其实你可以做子类化hook那个窗口,然后在它窗口的WM_INITMENUPOPUP消息中就可以修改或添加菜单了。
点赞  2007-12-4 21:47
多谢楼上的

但有没有更方便的做法呢?
点赞  2007-12-4 23:15
如果你一定要尝试你的方法,那个ID的值可以通过Remote SPY监测WM_COMMAND消息时看到。但是SHFindMenuBar返回值不正确,这才是关键。
点赞  2007-12-5 23:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复