Ribbon界面状态栏信息显示及添加进度条
来源:互联网 发布:淘宝下单返利 编辑:程序博客网 时间:2024/06/15 03:11
VS2008以来,新添加了ribbon风格的界面,这种界面简洁大方,是一种友好的交互界面,但在实际上也有很多技术明显区别于经典MFC界面开发,需要新的视角才能适应这种风格的界面。
本文中提到的状态栏信息显示及添加进度条功能的实现,由于ribbon风格的状态栏 CMFCRibbonStatusBar 没有提供SetIndicators这个成员函数,创建状态栏对象是不能划分区域窗格,并且关联变量ID,取而代之的是:m_wndStatusBar.AddElement和m_wndStatusBar.AddExtendedElement两个成员函数,用来添加状态栏版面及拓展版面,故记下来添加信息和添加进度条时也不能够用传统VC做法:显示消息SetPaneText,加载进度条 m_progress.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH,
rect,&(PmyMainFrm->m_wndStatusBar),123);因为这里rect不再是已经划分好了的窗格,不能直接获取。
解决方法一:重构CMFCRibbonStatusBar这个类的成员函数,添加传统的功能,但工作量大。
解决方法二:根据应用解决问题:查找MSDN,获得CMFCRibbonStatusBar所提供的成员函数功能,发现用SetInformation可以传递字符串类型数据至状态栏。而创建进度条是可以为其指定一个区域(右下角),使用户看到的效果就是加载在状态栏上的,通过指针操作,获取当前状态栏的窗口大小,根据其大小计算合适的区域,一定为添加的进度条,为了使用方便,设计了一个派生于基类CProgressCtrl的新类,集中处理信息显示以及进度条加载信息。具体加载进度条代码如下:
void CProgressAdd::OnLoadOperater(int range,int step)
{
CRect rect;
PmyMainFrm->m_wndStatusBar.GetClientRect(&rect); //获?取?状痢?态?栏?区?域?信?息¢
rect.left=rect.right*9/10.0;
rect.top+=1;
rect.right-=1;
rect.bottom-=1; //计?算?添?加ó进?度è条?的?区?域?
PmyMainFrm->m_progress.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH,
rect,&(PmyMainFrm->m_wndStatusBar),123);
PmyMainFrm->m_progress.SetRange(0,range);
PmyMainFrm->m_progress.SetStep(step);
}
效果图如下,源代码上传地址http://download.csdn.net/detail/liu1217283875/8866823
- Ribbon界面状态栏信息显示及添加进度条
- MFC的Ribbon界面状态栏加添进度条
- ribbon界面状态栏显示鼠标坐标
- STM32开发板显示界面添加状态栏
- 状态栏中添加进度条
- 状态栏添加进度条
- vc状态栏添加进度条
- vs2010 添加Ribbon界面图标
- 安卓跨界面显示进度条
- 为早期项目添加Ribbon界面
- 为早期项目添加Ribbon界面
- 在状态栏显示信息
- MFC对话框添加菜单、状态栏,并在状态栏显示菜单提示信息
- VS2010-MFC下在状态栏中添加进度条用于显示当前文件的读取进度
- MFC对话框的状态栏添加进度条
- Wtl中实现状态栏显示进度条
- 一个显示进度条的WTL状态栏类
- 在状态栏添加时间显示
- Objective-C 快速入门--基础(五)
- 如何将Latex转换为Word之Word插入.bib中的文献
- 一不抱怨,二不解释
- 程序员面试笔试宝典学习记录(二)(程序设计相关知识)
- Android中各种Adapter详解
- Ribbon界面状态栏信息显示及添加进度条
- 黑马程序员——迭代器
- 生成Android SDK的深入探索
- fedora22上terminal如何变成彩色?
- 黑马程序员--JAVA基础知识--异常
- 编程能力的四种境界
- 【动手写排序】冒泡排序
- 每天小练笔2-大数求和
- poj 2780 Linearity 最多共线点经典问题