GetSubMenu()的问题 用CreateMenu创建了一个菜单hMenu,然后用AppendMenu添加了两个菜单项,使用GetMenuCount(hMenu),返回2,但是我用GetSubMeun(hMenu,1),却总是返回NULL,敢问高手门,这个函数到底怎么用啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 menu.GetSubMenu(0)->TrackPopupMenu(....);GetMenu(0)->GetSubMenu(1)->CheckMenuItem(...); LZ要搞清楚子菜单(submenu)和菜单项(menuitem)的区别。你添加的是菜单项而不是子菜单。 GetSubMeun返回的是整个子菜单不是菜单项目显然你AppendMenu加的是菜单项你要用MF_POPUP添加子菜单这样GetSubMeun返回就不为0了 hMenu=CreateMenu();AppendMenu(hMenu,MF_POPUP,IDM_DRAW,L"Draw"); AppendMenu(hMenu,MF_POPUP,IDM_EDIT,L"Edit");SetMenu(hWnd,hMenu);DrawMenuBar(hWnd);hSubMenu=GetSubMenu(hMenu,1);这就是原始代码,到底哪里有错误呢? 常见的主菜单中有“File”、“Edit”、“View”、“Help”这些都是子菜单,点击子菜单会显示出其下面的菜单项和子菜单,而不会产生事件。除了子菜单之外剩下的就是菜单项了。 要添加子菜单,应该先创建popup菜单,然后将该子菜单连接到你的菜单。使用CreatePopupMenu函数创建子菜单,AppendMenu时,指定MF_POPUP样式,将生成的子菜单句柄传给最后一个参数,MSDN里用的形参名字是lpszNewItem这样才能调用GetSubMenu,以获取对应的子菜单句柄顺便说聊聊子菜单和菜单项子菜单就是popup菜单,点了之后不会执行命令,而是弹出下一级菜单菜单项就是能够只是一定操作的命令,点了之后,会执行你的代码 开机自启动已写入注册表,网络状态? 请问这种是什么网络?为什么本地连接没有IP和网关地址? 如何在带滚动条视图窗口中获得整个窗口DC vc编写类似cterm程序请教 高分求源码 共享一下我个人的编程资料库. 怎么操纵另一程序 多线程中如何刷新视图的问题 救命呀,我的IE打不开。各位大哥大姐帮帮我!!!!!!!!!!!!!11 求救哪位大虾,提供几个能下载ActiveX控件源代码的网址,偶要参考!(20分阿!) 打印條碼問題 退出程序就報告錯誤 请问有没有函数可以取得系统汉字的大小的
不是菜单项目
显然你AppendMenu加的是菜单项
你要用MF_POPUP添加子菜单
这样GetSubMeun返回就不为0了
AppendMenu(hMenu,MF_POPUP,IDM_DRAW,L"Draw");
AppendMenu(hMenu,MF_POPUP,IDM_EDIT,L"Edit");
SetMenu(hWnd,hMenu);
DrawMenuBar(hWnd);
hSubMenu=GetSubMenu(hMenu,1);
这就是原始代码,到底哪里有错误呢?
使用CreatePopupMenu函数创建子菜单,AppendMenu时,指定MF_POPUP样式,将生成的子菜单句柄
传给最后一个参数,MSDN里用的形参名字是lpszNewItem这样才能调用GetSubMenu,以获取对应的子菜单句柄顺便说聊聊子菜单和菜单项
子菜单就是popup菜单,点了之后不会执行命令,而是弹出下一级菜单
菜单项就是能够只是一定操作的命令,点了之后,会执行你的代码