点击"窗口"->当前打开的文件菜单(1.文件1; 2.文件2),类似VS一样,激活跳转后,这里的所有编号文件菜单全部删除,为什么,想在关闭文件前保留菜单,如何改

tangyf2009 2010-05-20 12:02:22
点击"窗口"->当前打开的文件菜单(1.文件1; 2.文件2),

类似VS一样,

激活可以跳转MDI对应视图页,但此时所有编号文件菜单全部删除,为什么?

我想在关闭文件前保留菜单,如何修改?

希望得到原理性的解释, 望高手不吝赐教.
...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangyf2009 2010-09-29
  • 打赏
  • 举报
回复
#pragma once
#include <windows.h>
#include <stdio.h>
class CSCManager
{
public:
CSCManager(void);
~CSCManager(void);

bool IsServiceExist(LPCTSTR lpSvrName); //判断服务是否存在
bool CreateSvr(LPCTSTR lpSvrName, LPCTSTR lpPath); //创建服务
bool DeleteSvr(LPCTSTR lpSvrName); //删除服务
bool IsServiceStart(LPCTSTR lpSvrName);
bool StartSvr(LPCTSTR lpSvrName);
bool StopSvr(LPCTSTR lpSvrName);
private:
bool OpenSCMangr(); //打开服务管理

private:
SC_HANDLE m_schSCManager; //服务管理器
};
tangyf2009 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tangyf2009 的回复:]
引用 7 楼 tangyf2009 的回复:
OnSetMenu 什么时候调用>?
[/Quote]

去掉CMainFrm中重载的OnSetMenu(HMENU) 就好了

使用基类默认的

哎~~~~~~~~~无线回音
------------------------------------
感谢大家热情回复
帖子我先结了哈
tangyf2009 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tangyf2009 的回复:]
OnSetMenu 什么时候调用>?
[/Quote]

妈的
看了 http://topic.csdn.net/u/20100530/21/7A4A0EA3-10DC-4ADC-BD9C-775C726A99E0.html
的内容我很惭愧

妈的 太有用了

楼主肯定是高手

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

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
tangyf2009 2010-05-21
  • 打赏
  • 举报
回复
OnSetMenu 什么时候调用>?
dinjay 2010-05-20
  • 打赏
  • 举报
回复
关注~
Eleven 2010-05-20
  • 打赏
  • 举报
回复
打开文件前面的菜单设置为一样,不要注意一下没有打开文件的时候,有些菜单项要disable掉,否则点击会有崩溃的危险
向立天 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tangyf2009 的回复:]
继续请教基类的OnSetMenu与OnUpdateFrameMenu以及这个菜单生成销毁的来龙去脉![/Quote]
想了解这个来龙去脉最好的方法就是查MSDN和下断点调试
由于我也没有具体做过相关的功能
所以不能提什么建设性的意见了
抱歉
tangyf2009 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
引用 4 楼 tangyf2009 的回复:
引用 3 楼 xianglitian 的回复:
激活可以跳转MDI对应视图页,但此时所有编号文件菜单全部删除,为什么?
==============
菜单不会无缘无故删除的
你是不是做了什么操作

也就是点击激活了而已,
下面所有的动态打开的文件菜单全部不见了

你什么都没做
一句代码没写
菜单就不见了?
[/Quote]
---------------------------------
SetMenu() 设置窗口菜单

重写了virtual方法:
BOOL CMainFrame::OnSetMenu (HMENU hmenu)
{
CMainFrame* pFrame = this;

CBCGPMenuBar* pMenu = (CBCGPMenuBar*)pFrame->GetMenuBar();
ASSERT(pMenu != NULL);
...
if(m_clsMainMenu.m_hMenu != NULL)
{
m_clsMainMenu.DestroyMenu();
}
if(m_clsMainMenu.LoadMenu(IDR_NASTARTYPE))
{
pMenu->CreateFromMenu(m_clsMainMenu.m_hMenu, FALSE, TRUE);
}
...
return TRUE;
}
-------------兄弟的话很有启发性哈, 佩服了
继续请教基类的OnSetMenu与OnUpdateFrameMenu以及这个菜单生成销毁的来龙去脉!
向立天 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tangyf2009 的回复:]
引用 3 楼 xianglitian 的回复:
激活可以跳转MDI对应视图页,但此时所有编号文件菜单全部删除,为什么?
==============
菜单不会无缘无故删除的
你是不是做了什么操作

也就是点击激活了而已,
下面所有的动态打开的文件菜单全部不见了
[/Quote]
你什么都没做
一句代码没写
菜单就不见了?
tangyf2009 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xianglitian 的回复:]
激活可以跳转MDI对应视图页,但此时所有编号文件菜单全部删除,为什么?
==============
菜单不会无缘无故删除的
你是不是做了什么操作
[/Quote]
也就是点击激活了而已,
下面所有的动态打开的文件菜单全部不见了
向立天 2010-05-20
  • 打赏
  • 举报
回复
激活可以跳转MDI对应视图页,但此时所有编号文件菜单全部删除,为什么?
==============
菜单不会无缘无故删除的
你是不是做了什么操作

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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