如何改变多文档的程序的主菜单

月光莫利亚 2003-09-05 03:47:45
小弟一多文档程序,为了使菜单每个选项前加上一个小图标,使用了一个现成的动态库,程序中有如下处理:
app的InitInstance()函数中
CMenu* pMenu = m_pMainWnd->GetMenu();
if(pMenu != NULL)
pMenu->DestroyMenu();
HMENU hMenu = ((CMainFrame*)m_pMainWnd)->NewMenu();
pMenu = CMenu::FromHandle(hMenu);
m_pMainWnd->SetMenu(pMenu);
((CMainFrame*)m_pMainWnd)->m_hMenuDefault = hMenu;
并在CMainFrame中添加了函数NewMenu()
这样运行程序后,不开子窗口时的主菜单可以加上图标了,但是一打开子窗口,新的主菜单又变成原来的样子了。
请各位高手给解释一下多文档程序的主菜单,怎么才能让子窗口的主菜单也加上图标。
急盼您的高见!!!!!!
...全文
82 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwjcwjcwj 2004-01-02
  • 打赏
  • 举报
回复
up
月光莫利亚 2003-09-12
  • 打赏
  • 举报
回复
自己顶一下。
月光莫利亚 2003-09-11
  • 打赏
  • 举报
回复
再请教一下,MainFrame和各个文档模板的Frame是什么关系呀,好像打开的子窗口上的菜单是属于模板的,在模板里虽然可以改变菜单,但是想改成可以加载图标的就不知道该怎么办了。
再盼高手指点。
vcforever 2003-09-05
  • 打赏
  • 举报
回复
用SetMenu就可以改变主框架上的菜单!
papaya_stone 2003-09-05
  • 打赏
  • 举报
回复
加上这句
pMainFrame->OnUpdateFrameMenu(pMainFrame->m_hMenuDefault);
月光莫利亚 2003-09-05
  • 打赏
  • 举报
回复
是呀,CMainFrame可以SetMenu(),可以设置m_hMenuDefault ,为什么子窗口的进行同样的设置就不起作用呢?
papaya_stone 2003-09-05
  • 打赏
  • 举报
回复
菜单资源一般有两个IDR_MAINFRAME,这个是不开子窗口时显示的菜单。
还有一个IDR_+"文档名",这个是打开文档后显示的菜单。

可能你只在IDR_MAINFRAME中加了图标。
再做一个NewDocMenu()函数,将IDR_XXXX也加上图标
icr_mio 2003-09-05
  • 打赏
  • 举报
回复
你还不如直接用NewMenu,在www.vckbase.com上有例子
不用.dll,而且菜单画的很漂亮
DirectX修复工具(DirectX repair)是一款完全由本人自开发的系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。资源中的技术文档包含程序的部分源代码,以供编程爱好者交流。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista以及Windows 7,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。本程序中包含了最新版的DirectX redist(Jun2010),并且全部文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击界面上的“检测并修复”按钮,程序就会自动完成校验、检测、修复的全部功能,无需用户的介入,大大降低了使用难度。 本程序采用了多线程编程技术,可充分利用系统的资源,减少时间的等待。同时,针对部分低性能电脑,也做了一定程度的优化。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了2项高级功能。点击其中的“注册系统中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。 程序附带了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全匿名和自愿的。 本程序基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本才可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7用户,可以直接运行本程序

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧