MDI中子窗口切换应该响应什么消息?

shootingstars 2004-01-04 03:15:40
我使用VC的向导做了一个MDI的程序,需要当子窗口切换时改变主菜单中的某个子类的选项。
现在有以下几个问题:
1 我应该响应什么消息来知道子窗口发生了切换?
2 如何改变菜单中的某个子类的内容,能否实现两个菜单的合并?
(如原来的菜单中的功能选项为:1终止进程,2调试,当子窗口改变时我想将菜单改为:1启动服务,2停止服务)
3 当我打开一个子窗口后,菜单中会自动将这个子窗口的窗口名称加到我的菜单中,这是在什么地方实现的?如果我想屏蔽这个功能要如何实现?

请各位大侠不吝赐教。
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shootingstars 2004-01-06
  • 打赏
  • 举报
回复
自己再顶一下。。。。。。。。。。。
shootingstars 2004-01-05
  • 打赏
  • 举报
回复
to hahu(网痞 -- 勿近)
再次请问:原来使用VC生成的MDI程序,它会每次自动将打开的MDI子窗口的窗口名称加到“窗口”菜单项下,我现在已经删除了“窗口”菜单项。如果我想新建一个“窗口切换”的菜单项,并且想将子窗口的标题都加到此项下,我应该如何做?
shootingstars 2004-01-05
  • 打赏
  • 举报
回复
up
ross33123 2004-01-04
  • 打赏
  • 举报
回复
子窗口发生了切换

WM_MDIACTIVATE

CWnd::OnMDIActivate
afx_msg void OnMDIActivate( BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd );

hahu 2004-01-04
  • 打赏
  • 举报
回复
2.
加入一个菜单资源
加入一个UPDATE_COMMAND_UI消息
if(bFlag)
{
CMenu *pMenu=GetMenu();
if(pMenu)
{
CMenu popMenu;
popMenu.LoadMenu(IDR_MENU2);
CMenu* popMenu2=popMenu.GetSubMenu(0);
pMenu->ModifyMenu(ID_HELLO,MF_POPUP,(UINT)popMenu2->GetSafeHmenu(),"&Popup");
}
}
}

3在 CYouApp::InitInstance()中的加入模板的时候自动加载
只要改一下模板里的菜单资源ID
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_DEMOGRTYPE,//这里,改成IDR_MAINFRAME
RUNTIME_CLASS(CDemoGrphDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CDemoGrphView));
AddDocTemplate(pDocTemplate);

16,472

社区成员

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

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

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