1.首先要创建状态栏

  MFC中创建状态栏是用数组来分隔格子的.所以要先弄个数组

下面在自己继承的CWnd类.cpp文件中定义一个静态数组indicators

static UINT indicators[]=
{
IDS_STRING104,
IDS_PROGRESS,
IDS_STRING105,
IDS_STRING106
};

这里面的值,可以自己定义,也可以在字符资源中定义

MFC教程是让在字符串资源文件中定义

下面来创建状态栏了,在MyWnd的WM_CREATE消息中创建,

即OnCreate()函数中

m_statusBar是在类的.h文件中定义的成员变量

CStatusBar m_statusBar;

//创建状态栏
m_statusBar.CreateEx(this);
m_statusBar.SetIndicators(indicators, sizeof(indicators) / sizeof(UINT));//用静态数组来分隔状态栏
m_statusBar.SetPaneInfo(0, IDS_STRING104, SBPS_STRETCH, 0);//设置第一格子填充剩余的空间
m_statusBar.SetPaneInfo(1,IDS_PROGRESS, SBPS_NORMAL, 100);//设置第二格子的宽度,为添加进度条的宽度

这样就创建好了状态栏了.

2.添加进度条到状态栏中

要想把进度条放到状态栏中,首先要获取状态栏中要放置的格子区域大小,

我要放在第二个格子中,所以就要获取状态栏第二个格子的区域大小.

用状态栏的成员函数GetItemRect()可以获取指定格子的区域

CRect rect;
m_statusBar.GetItemRect(1, &rect);

为了防止窗口大小改变这区域也要相应的改变,所以我把创建进度条放在了WM_SIZE消息中,即OnSize()函数中

m_progressState为类的成员变量,定义在类的.h文件中

CProgressCtrl m_progressState;

void MyWnd::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
CRect rect;
m_statusBar.GetItemRect(1, &rect);//获取第二个格子的区域大小
if (m_progressState.m_hWnd)  //判断进度条是否创建了,没创建就创建,创建了就移动到第二个格子的位置
{
m_progressState.MoveWindow(rect);//移动进度条
}
else
{
m_progressState.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, rect, &m_statusBar, 123);//创建进度条,位置就是状态栏的第二格子,父窗口为状态栏
m_progressState.SetRange(0, 100);//设置进度条的取值范围
m_progressState.SetPos(50);  //设置进度条的当前位置
}
}

书上说的是放在WM_PAINT消息中.也可以,看自己的心情呀,反正都一样.

3.效果展示

MFC状态栏的创建与添加进度条的更多相关文章

  1. EasyUI添加进度条

    EasyUI添加进度条 添加进度条重点只有一个,如何合理安排进度刷新与异步调用逻辑,假如我们在javascript代码中通过ajax或者第三方框架dwr等对远程服务进行异步调用,实现进度条就需要做到以 ...

  2. QTableView 添加进度条

    记录一下QTableView添加进度条 例子很小,仅供学习 使用QItemDelegate做的实现 有自动更新进度 要在.pro文件里添加 CONFIG += c++ ProgressBarDeleg ...

  3. struts2上传文件添加进度条

    给文件上传添加进度条,整了两天终于成功了. 想要添加一个上传的进度条,通过分析,应该是需要不断的去访问服务器,询问上传文件的大小.通过已上传文件的大小, 和上传文件的总长度来评估上传的进度. 实现监听 ...

  4. c#devexpress GridContorl添加进度条

    demo 的实现图 下边是步骤和代码 1定义 时钟事件,定时的增加进度条的增量. 2:  添加进度条 3;定义字段属性 using System; using System.Collections.G ...

  5. iOS WKWebView添加进度条02

    之前写了一个是关于webview添加进度条的,现在补一个WKWebView进度条. //添加一个全局属性 @property(nonatomic,strong)CALayer *progresslay ...

  6. iOS-仿支付宝加载web网页添加进度条

    代码地址如下:http://www.demodashi.com/demo/11727.html 目前市场上APP常会嵌入不少的h5页面,参照支付宝显示web页面的方式, 做了一个导航栏下的加载进度条. ...

  7. WebView的使用及添加进度条

    实现的效果比较简单类似于微信打开网页,头部有个进度条显示加载进度 下载地址:http://download.csdn.net/detail/qq_29774291/9666941 1.在安卓端加载一个 ...

  8. 继承QAbstractTableModel QStyledItemDelegate实现自定义表格,添加进度条和选中框。

    由于项目要求,需要实现一个列表目录显示信息,并且需要实现每一项提供进度条和选项框功能,所以需要继承QAbstractTableModel和QStyledItemDelegate进行自定义. -自定义数 ...

  9. ASP添加进度条

    今日在学习JavaScript所有写个通用的进度条,防止网页假死.让用户更清楚地知道此网页正在进行加载或者处理一些事情,所有加载进度条是一个网站的必要性. 在网页中Page_load首先要加载此进度条 ...

  10. JDK一键部署, 新添加进度条

    JDK部署, 脚本与JDK安装包放在同一目录 然后执行 source ./jdk.sh 稍等进度条100%即可 #******************************************* ...

随机推荐

  1. 我又学会了使用Range实现网络文件下载的断点续传

    目录 前言 1.Range请求头 1.1.概述 1.2.使用限制 1.3.范围请求 1.4.预防资源变更 2.断点续传下载实现 2.1.流程设计 2.2.代码实现 2.3.运行结果 3.RandomA ...

  2. 欧姆龙PLC数据 转 IEC61850项目案例

    1         案例说明 1.   设置网关采集欧姆龙PLC数据 2.   把采集的数据转成IEC61850协议转发给其他系统. 2        VFBOX网关工作原理 VFBOX网关是协议转换 ...

  3. Python中使用MySQL模糊查询的方法

    1.方法一:使用pymysql库的方法 当在Python中使用MySQL进行模糊查询时,我们通常会使用pymysql或mysql-connector-python这样的库来连接MySQL数据库并执行查 ...

  4. 网络OSI七层模型及各层作用 tcp-ip

    背景 虽然说以前学习计算机网络的时候,学过了,但为了更好地学习一些物联网协议(MQTT.CoAP.LWM2M.OPC),需要重新复习一下. OSI七层模型 七层模型,亦称OSI(Open System ...

  5. $Kruskal$ 算法的实现 | 最小生成树

    \(Kruskal\) 算法 以 Luogu P3366 为例题 实现方法:从小到大遍历每一条线,如果该线连接的两点已经都在树内则不处理,否则描出这条线 从小到大是一个贪心的实现方法,由于每描出一条线 ...

  6. 3 - 【RocketMQ 系列】CentOS 7.6 安装部署RocketMQ

    四.安装管理面板 1.介质下载 下载到本地再上传,下载地址:https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketm ...

  7. UE4 WebUI使用指南2-通信

    前面一篇WebUI的文章讲述的WebUI插件的下载,开启,在UE中创建,加载网页等. 本文继续讲述通过WebUI,UE和网页实现双向通信的实现思路. 一点说明 由于WebUI 使用的浏览器内核并不是最 ...

  8. Node.js 处理 File

    Node.js 处理 File fs 模块 常规使用 运用递归遍历目录树 创建文件和目录 读写文件 path 模块 对于 file 的理解,此处 fs 模块 Node.js 提供了处理文件系统的内置模 ...

  9. 深入探究 Golang 反射:功能与原理及应用

    Hi 亲爱的朋友们,我是 k 哥.今天,咱们来一同探讨下 Golang 反射. Go 出于通用性的考量,提供了反射这一功能.借助反射功能,我们可以实现通用性更强的函数,传入任意的参数,在函数内通过反射 ...

  10. 关于android的图像视图的基本了解

    最好直接复制进去而不是拖进去 图片直接导入最好用小写字母命名,数字与字母之间要用_,而且数字好像不可以连用 centerInside,fitCenter,center的区别: centerInside ...