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

ilovedrv 2008-11-04 09:05:08
我正在设计一个软件,有两种工作模式,即数据采集界面、数据处理界面、细节分析界面,三种模式有一些共同的操作,但大部分都不同,分散在工具条和菜单,以及Dock浮动框,现在的想法是,当系统启动进入默认模式后,可以通过点击某个工具按钮或者菜单,切换到另一个界面,三种模式可以来回切换,不知道大家有什么好的方法,或者提供网上的一些例子和开源实现,谢谢了
...全文
294 8 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
可以创建三个文档模板,各创建一个框架窗口,但只显示其中一个,其它隐藏。
目录回到顶部↑丛书前言 前言 读者须知 第1章 visual c++起点 实例1 mfc架、文档和视 实例2 创建多文档窗口 实例3 创建对话窗口 实例4 创建启动窗口 第2章 多窗口界面 实例5 多窗口的单文档界面 实例6 通过菜单改变视图 实例7 通过工具栏改变视图 实例8 多视图窗口数据显示 第3章 实现microsoft风格 实例9 visual studio风格的窗口 实例10 internetexplorer4.0风格的窗口 实例11 outlook风格的窗口 实例12 状态栏中的任务栏 第4章 超文本界面 实例13 创建超级链接界面 . 实例14 显示模式html对话窗口 实例15 超文本浏览器 实例16 数字化时钟 第5章 各种特效窗口 实例17 创建不规则窗口 实例18 操作dib位图窗口 实例19 位图转换窗口 实例20 渐变的窗口 第6章 对话界面 实例21 可扩展对话柜 实例22 位图预览对话 实例23 显示目录树对话 实例24 透明对话 第7章 菜单状态操作 实例25 漂亮的图文菜单 实例26 随文档动态改变菜单 实例27 启用和禁止菜单命令 实例28 复选菜单命令 第8章 自绘制菜单 实例29 自绘制图标菜单 实例30 visualstudio外观的工具栏 实例31 对话窗口中的菜单 实例32 弹出位图菜单 第9章 动画按钮 实例33 avi动画按钮 实例34 实现图标按钮 实例35 实现一组图标按钮 实例36 绘制dib动画按钮 第10章 多彩按钮 实例37 位图按钮 实例38 带颜色的按钮 实例39 对鼠标敏感的按钮 实例40 可弹出菜单的按钮 第11章 图文按钮风格大全 实例41 各种图文按钮风格 实例42 图标浮动按钮 实例43 图钉按钮 实例44 计数器按钮 第12章 不规则按钮大全 实例45 各种不规则按钮 实例46 环形按钮 实例47 三角形按钮 实例48 椭圆形按钮 第13章 掩膜编辑 实例49 ip地址输入编辑 实例50 下拉列表控件中的编辑柜 实例51 掩膜输入编辑 实例52 数字输入控制编辑 第14章 编辑和树视控件 实例53 破解密码内容 实例54 16进制编辑输入 实例55 树型注释 实例56 目录树结构 第15章 组合集锦 实例57 多列显示的组合 实例58 自动完成功能的组合 实例59 浮动的组合 实例60 浮动的彩色组合 第16章 操作系统的组合 实例61 “快照”组合 实例62 多列属性组合 实例仍 使用组合选择颜色 实例64 使用组合选择字体 第17章 组合和列表 实例65 具有历史记录的组合 实例66 系统图像列表 实例67 excel表格视图 实例68 浏览数据库的列表 第18章 属性页初级篇 实例69 改变属性页的按钮区 实例70 完整的属性页应用程序 实例71 嵌入对话中的属性页 实例72 实现wizard 第19章 属性页及标签页高级篇 实例73 在对话中的属性页 实例74 实现标签下标式的视图切换 实例75 属性列表控件 实例76 标签列表控件 第20章 工具栏集锦 实例77 具有下拉按钮的工具栏 实例78 工具栏中的列表 实例79 各种颜色和大小的工具栏 实例80 气球式提示窗口 第21章 状态栏初级篇 实例81 改变状态栏的状态格 实例82 进度条中的文字 实例83 带声音的提示条 实例84 3d向量控件 第22章 状态栏高级篇 实例85 丰富的状态栏风格 实例86 使用动画控件 实例87 使用日历控件 实例88 使用柱状图控件 第23章 系统操作之一 实例89 方便的日历托盘 实例90 列举系统字体 实例91 实现注册表功能 实例92 检测windows版本号 第24章 系统操作之二 实例93 动画显示的托盘 实例94 浮动窗口 实例95 获得系统硬件信息 第25章 系统操作之三 实例96 修改系统[开始]菜单 实例97 检测系统中的api包 第26章 系统操作之四 实例98 建立自己的任务栏 实例99 隐藏任务条中的应用程序 实例100 检测cpu的时钟 附录a 窗口类与窗口样式 a.1 窗口类结构 a.2 窗口类样式 a.3 窗口样式分组 附录b mfc中windows公共控件的通知消息 b.1 windows公共控件的通知 b.2 通知消息结构 b.3 通知过程概述 b.4 更好地处理通知的方案 b.5 用0n_n0tify_range指定通知域 附录c visual c++开发实用技巧

15,978

社区成员

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

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