如何实现界面整体模式切换,包括工具条,菜单,浮动框

ilovedrv 2008-11-04 09:05:08
我正在设计一个软件,有两种工作模式,即数据采集界面、数据处理界面、细节分析界面,三种模式有一些共同的操作,但大部分都不同,分散在工具条和菜单,以及Dock浮动框,现在的想法是,当系统启动进入默认模式后,可以通过点击某个工具按钮或者菜单,切换到另一个界面,三种模式可以来回切换,不知道大家有什么好的方法,或者提供网上的一些例子和开源实现,谢谢了
...全文
283 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovedrv 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dch4890164 的回复:]
典型的策略模式
每一个模式,定义一个类
CModel1,CModel2,CModel3,CModelBase
前三个都是CModelBase的子类
定义一个CModelBase* m_pCurrModel = new CModel1;
需要切换模式的时候
delete m_pCurrModel;
m_pCurrModel = new CModel2;
即可
[/Quote]

呵呵,这样做确实挺好的,我试了以下,把界面切换和维护工作话分到一个策略中,这样系统结构很清晰,不过我没有用那么多子类
ilovedrv 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 VsirSoft 的回复:]
有两种工作模式,即数据采集界面、数据处理界面、细节分析界面,三种模式有一些共同的操作

....看迷糊了 是两还是三 -_-#


问题我大概明白了..但是切换除了隐藏就是关闭.要么就在同一个窗体DC输出图像.别无其他方式.
看你目前的工程应该是多文档 隐藏切换比较实际.
[/Quote]

好的,也只能这样了,隐藏更合适一些
Tinary3v0 2008-11-04
  • 打赏
  • 举报
回复
Codeproject上有很多这样的例子
找到了一些菜单动态加载的:
根据数据库:http://www.codeproject.com/KB/menus/databasemenu.aspx
根据自定义文件:http://www.codeproject.com/KB/menus/dynitems.aspx
VsirSoft 2008-11-04
  • 打赏
  • 举报
回复
有两种工作模式,即数据采集界面、数据处理界面、细节分析界面,三种模式有一些共同的操作

....看迷糊了 是两还是三 -_-#


问题我大概明白了..但是切换除了隐藏就是关闭.要么就在同一个窗体DC输出图像.别无其他方式.
看你目前的工程应该是多文档 隐藏切换比较实际.
ilovedrv 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 palmax 的回复:]
写一个方法封装一下,动态计算切换后需要显示的界面控件和位置,隐藏掉切换前的界面控件,每次切换时调用这个方法并把当前的模式做为参数传入
[/Quote]

恩,我也试过这样做,可是总感觉做的不是很简洁,不知道有没有可以参考的例子,学习下
palmax 2008-11-04
  • 打赏
  • 举报
回复
写一个方法封装一下,动态计算切换后需要显示的界面控件和位置,隐藏掉切换前的界面控件,每次切换时调用这个方法并把当前的模式做为参数传入
dch4890164 2008-11-04
  • 打赏
  • 举报
回复
典型的策略模式
每一个模式,定义一个类
CModel1,CModel2,CModel3,CModelBase
前三个都是CModelBase的子类
定义一个CModelBase* m_pCurrModel = new CModel1;
需要切换模式的时候
delete m_pCurrModel;
m_pCurrModel = new CModel2;
即可
cnzdgs 2008-11-04
  • 打赏
  • 举报
回复
可以创建三个文档模板,各创建一个框架窗口,但只显示其中一个,其它隐藏。

15,980

社区成员

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

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