【菜单工具栏问题】知道窗口句柄如何得到菜单工具栏中每个菜单的句柄??

时间:2022-03-09 08:58:03
各位朋友好:
问题是这样的。一个带有菜单工具栏的窗口,窗口的句柄是已知的,通过GetMenu方法也可以获取到一个菜单句柄,但是无法通过这个菜单句柄获取任何子菜单的信息,所以不知道这个菜单句柄意味着什么?
我觉得应该先通过窗口句柄或这个通过GetMenu获得的菜单句柄来得到菜单工具栏的句柄,然后利用这个句柄获取菜单工具栏下的每个子菜单,我的思路是这样的,不知道对否,请大家给点意见!!

5 个解决方案

#1


自己顶!来帮帮哦!

#2


用CMenu对象Attach你获取到的句柄
然后就可以操作了

#3


按照下面方法,是不行的,hSub是空的。你所说的Attach是什么样,能否具体些呢?十分感谢!!
HWND hMyWin;
HMENU hManu GetMenu(hMyWin);
HMENU hSub = GetSubMenu(hManu,nPos);

#4


循环获取菜单子对象即可。

            HMENU hMenu = 你已获取的菜单句柄
            for (int i = 0; i < ::GetMenuItemCount(hMenu); i++)
            {
                HMENU hSubMenu = ::GetSubMenu(hMenu, i);
                if (hSubMenu != NULL && ::IsMenu(hSubMenu))
                {
                    // hSubMenu 就是你要的
                }
            }

#5


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法

#1


自己顶!来帮帮哦!

#2


用CMenu对象Attach你获取到的句柄
然后就可以操作了

#3


按照下面方法,是不行的,hSub是空的。你所说的Attach是什么样,能否具体些呢?十分感谢!!
HWND hMyWin;
HMENU hManu GetMenu(hMyWin);
HMENU hSub = GetSubMenu(hManu,nPos);

#4


循环获取菜单子对象即可。

            HMENU hMenu = 你已获取的菜单句柄
            for (int i = 0; i < ::GetMenuItemCount(hMenu); i++)
            {
                HMENU hSubMenu = ::GetSubMenu(hMenu, i);
                if (hSubMenu != NULL && ::IsMenu(hSubMenu))
                {
                    // hSubMenu 就是你要的
                }
            }

#5


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法