想对一个应用程序的菜单进行操作,用GetNextWindow等找到了包含菜单的子窗口的句柄,用GetMenu()可返回一个非0的数值,这个应该就是菜单的句柄了吧?但用IsMenu()来测试又返回0。
那么GetMenu返回的值是什么呢,如何才能正确取得菜单的句柄啊?HELP……谢谢!

解决方案 »

  1.   

    hwnd:含有菜单的窗体的hWnd
    hmenu:代表窗体是否含有菜单
    hsubmenu:代表每个子菜单,但是每个菜单命令不再给予handle而是用menuid代表
    获取某个窗体的hWnd 调用GetMenu函数 若含有菜单返回hMenu
    获取hSubMenu调用GetSubMenu函数  如返回0表示失败
    获取菜单命令的MenuID调用GetMenuItemID函数 返回0表示失败 注意分隔线也算一个菜单命令
      

  2.   

    对了,是不是因为GetMenu函数的参数不能为子窗口句柄啊?
    如果是的话,那怎么得到包含在子窗口里的菜单的句柄呢?
      

  3.   

    我之前写的那个用getmenu()返回的非零值应该不是菜单的句柄,错了,sorry……
    MSDN上写GetMenu()不支持对子窗口的调用,但这个应用程序的菜单又是在子窗口里的,那用什么办法可以得到菜单的句柄呢?