CProgressCtrl
“ 进 度 条 控 件 ” 是 一 个 窗 口 , 应 用 程 序 可 以 使 用 这 个 窗 口 来 表 明 一 个 冗 长 操 作
的 进 度 。 它 由 一 个 从 左 到 右 , 用 系 统 高 亮 色 逐 渐 填 充 的 矩 形 组 成 。
CProgressCtrl 类 提 供 了 W indows 通 用 进 度 条 控 件 的 机 能 。 这 个 控 件 ( 也 就 是CProgressCtrl 类 ) 只 有 对 运 行 在 W indows 95 和 W indows NT 3.51 或 更 高 版 本下 的 程 序 才 是 有 效 的 。
进 度 条 控 件 具 有 一 个 范 围 和 一 个 当 前 位 置 。 范 围 代 表 了 操 作 的 整 个 期 间 , 当 前位 置 代 表 了 应 用 程 序 为 完 成 操 作 已 经 做 完 的 部 分 。 窗 口 进 程 用 范 围 和 当 前 位 置来 确 定 用 高 亮 色 填 充 进 度 条 的 百 分 比 , 以 及 确 定 在 进 度 条 中 所 显 示 的 文 本 ( 如果 有 的 话 ) 。 由 于 范 围 和 当 前 位 置 值 是 用 有 符 号 整 数 表 示 的 , 所 以 可 能 的 当 前位 置 值 的 范 围 是 从 -217483648 到 21748364 7 。
#include <afxcmn.h>
CProgressCtrl 类 成 员
Construction
CprogressCtrl 构 造 一 个 CProgressCtrl 对 象
Create 创 建 一 个 进 度 条 控 件 并 将 它 与 一 个 CProgressCtrl 对象 连 接
Attributes
SetRange 为 进 度 条 控 件 设 置 范 围 的 最 小 值 和 最 大 值 , 并 重 画进 度 条 来 反 映 新 的 范 围
SetRange32 为 进 度 条 控 件 设 置 范 围 的 最 小 值 和 最 大 值 , 并 重 画
进 度 条 来 反 映 新 的 范 围
GetRange 获 取 进 度 条 控 件 范 围 的 下 限 和 上 限
GetPos 获 取 进 度 条 的 当 前 位 置
SetPos 设 置 进 度 条 的 当 前 位 置 并 重 画 进 度 条 来 反 映 新 的 位置
OffsetPos 用 一 个 指 定 的 增 量 来 增 加 进 度 条 控 件 的 当 前 位 置 ,
并 重 画 此 进 度 条 来 反 映 新 的 位 置
SetStep 为 一 个 进 度 条 控 件 指 定 每 一 步 的 增 量
Operations
StepIt 用 每 一 步 的 增 量 ( 参 见 SetStep ) 来 增 加 一 个 进 度 条控 件 的 当 前 位 置 , 并 重 画 此 进 度 条 来 反 映 新 的 位 置
成 员 函 数
CProgressCtrl::CProgressCtrl
CProgressCtrl();
说 明
此 成 员 函 数 用 来 构 造 一 个 CProgressCtrl 对 象 。
在 构 造 一 个 CProgressCtrl 对 象 后 , 调 用 CProgressCtrl::Create 来 创 建 进 度 条 控件 。
请 参 阅 CProgressCtrl::Create
CProgressCtrl::Create
BOOL Create( DWORD dwStyle , const RECT& rect , CWnd* pParentWnd , UINT
nID );
返 回 值
如 果 CProgressCtrl 对 象 被 成 功 创 建 则 返 回 TRUE ; 否 则 返 回 FALSE 。
参 数
dwStyle
指 定 进 度 条 控 件 的 风 格 。 除 了 Windows 风 格 的 任 何 组 合 , 附 加 下 列 进 度条 控 件 风 格 :
- PBS_VERTICAL 垂 直 显 示 进 度 信 息 , 从 顶 到 底 。 没 有 这 个
标 志 , 进
度 条 控 件 从 左 到 右 水 平 显 示 。
- PBS_SMOOTH 逐 渐 显 示 , 平 滑 地 填 充 进 度 条 控 件 。 没 有 这
个 标 志 , 控 件 将 用 块 来 填 充 。
rect
指 定 进 度 条 控 件 的 尺 寸 和 位 置 。 它 可 以 是 一 个 CRect 对 象 或 者 是 一 个RECT 结 构 。 由 于 此 控 件 必 须 是 一 个 子 窗 口 , 所 以 指 定 的 坐 标 是 相 对 于pParentWnd 的 客 户 区 的 。
pParentWind
指 定 进 度 条 控 件 的 父 窗 口 , 通 常 是 一 个 CDialog。 它 不 能 是 NULL 。
nID
指 定 进 度 条 控 件 的 ID 。
说 明
你 可 以 分 两 步 来 构 造 一 个 CProgressCtrl 对 象 。 首 先 调 用 构 造 函 数 来 创 建
CProgressCtrl 对 象 ; 然 后 调 用 Create 来 创 建 进 度 条 控 件 。
请 参 阅 CProgressCtrl:: CProgressCtrl
CProgressCtrl::GetPos
int GetPos();
返 回 值
返 回 进 度 条 控 件 的 位 置 。
说 明
此 成 员 函 数 用 来 检 取 进 度 条 的 当 前 位 置 。 进 度 条 的 这 个 位 置 不 是 它 在 屏 幕 上 的
请 参 阅 CProgressCtrl::SetPos
CProgressCtrl::GetRange
void GetRange( int & nLower , int& nUpper );
参 数
nLower
- 个 指 向 整 数 的 引 用 , 它 用 来 接 收 进 度 条 控 件 的 下 限 。
nUpper
- 个 指 向 整 数 的 引 用 , 它 用 来 接 收 进 度 条 控 件 的 上 限 。
说 明
此 成 员 函 数 用 来 获 取 当 前 进 度 条 控 件 的 上 限 和 下 限 , 或 者 说 是 范 围 。 此 函 数 将
请 参 阅 PBRANGE , PBM_GETRANGE
CProgressCtrl::OffsetPos
int OffsetPos( int nPos );
返 回 值
返 回 进 度 条 控 件 的 早 先 的 位 置 。
参 数
nPos
用 来 增 加 位 置 的 数 量 。
说 明
此 函 数 用 由 nPos 指 定 的 增 量 来 增 加 进 度 条 控 件 的 当 前 位 置 , 并 且 重 画 此 进 度条 来 反 映 新 的 位 置 。
请 参 阅 CProgressCtrl::SetPos, CProgressCtrl::SetRange , CProgressCtrl::StepIt
CProgressCtrl::SetPos
int SetPos( int nPos );
返 回 值
返 回 进 度 条 控 件 的 早 先 的 位 置 。
参 数
nPos
进 度 条 控 件 的 新 位 置 。
说 明
此 成 员 函 数 根 据 nPos 指 定 的 位 置 来 设 置 进 度 条 控 件 的 当 前 位 置 , 并 重 画 此 进度 条 来 反 映 新 的 位 置 。
进 度 条 的 这 个 位 置 不 是 它 在 屏 幕 上 的 物 理 位 置 , 而 是 在 SetRange 中 的 上 限 和 下限 范 围 之 间 的 位 置 。
请 参 阅 CProgressCtrl::OffsetPo s,CProgressCtrl::SetRange ,CProgressCtrl::StepIt
CProgressCtrl::SetRange
void SetRange( short nLower , short nUpper ); void SetRange32(int nLowe r , int nUpper );
参 数
nLower
指 定 范 围 的 下 限 ( 缺 省 值 是 零 ) 。
nUpper
指 定 范 围 的 上 限 ( 缺 省 值 是 100 ) 。
说 明
此 函 数 用 来 设 置 进 度 条 控 件 范 围 的 上 限 和 下 限 , 并 重 画 此 进 度 条 来 反 映 新 的 范围 。
成 员 函 数 SetRange32 为 进 度 条 设 置 32 位 的 范 围 。
请 参 阅 CProgressCtrl::OffsetPo s, CProgressCtrl::SetPo s, CProgressCtrl::StepIt
CProgressCtrl::SetStep
int SetStep( int nStep );
返 回 值
返 回 原 来 的 步 增 量 。
参 数
nStep
新 的 步 增 量 。
说 明
此 函 数 为 进 度 条 控 件 指 定 步 增 量 。 步 增 量 就 是 每 调 用 一 次 CProgressCtrl::StepIt
所 增 加 进 度 条 控 件 的 当 前 位 置 的 数 量 。
缺 省 的 步 增 量 是 10 。
请 参 阅 CProgressCtrl::OffsetPo s, CProgressCtrl::SetPo s, CProgressCtrl::StepIt
CProgressCtrl::StepIt
int StepIt();
返 回 值
返 回 进 度 条 控 件 的 原 来 的 位 置 。
说 明
此 函 数 用 步 增 量 来 增 加 一 个 进 度 条 控 件 的 当 前 位 置 。 该 步 增 量 由 成 员 函 数
CProgressCtrl::SetStep 来 设 定 。
请 参 阅 CProgressCtrl::SetPos, CProgressCtrl::SetRange , CProgressCtrl::SetStep