自学内容网 自学内容网

2501,进度控件

原文

CProgressCtrlST是从MFCCProgressCtrl继承的类.使用此类,你的应用可有使用位图进度栏,这在许多现代安装程序和游戏中都可见!

CProgressCtrlST功能:
1,易用
2,标准CProgressCtrl方法
3,支持256+色位图
4,支持负范围
5,支持垂直进度控件
6,包括完整的源码!
7,在现有应用实现成本低

如何整合CProgressCtrlST到应用中

你的项目包括以下文件:
ProgressCtrlST.h
ProgressCtrlST.cpp
你还需要一个来绘画进度栏的位图.如,包含Tile.bmp并叫它IDB_TILE.使用对话框编辑器创建叫IDC_TILED进度控件.
然后为此进度控件创建一个成员变量:
CProgressCtrlST m_progressTiled;

现在,给CProgressCtrlST附加进度控件.对基于对话框的应用,请在OnInitDialog中:

    //调用基类方法
CDialog::OnInitDialog();
    //创建`IDC_TILED`进度控件
m_progressTiled.SubclassDlgItem(IDC_TILED, this);

或在你的DoDataExchange中:

    //调用`基`方法
CDialog::DoDataExchange(pDX);
    //创建`IDC_TILED`进度控件
DDX_Control(pDX, IDC_TILED, m_progressTiled);

该控件默认有与基MFCCProgressCtrl相同范围和开始位置.可用基类的相同方法(如SetRangeSetPos)来修改这些值.当前不支持OffsetPos.

默认,像普通进度栏一样绘画该控件自身.可赋值一个位图来取得一个显示它的进度栏,而不是普通的标准块!

会平铺此位图绘画进度栏必要部分;不会缩放它.
给进度栏赋值位图:

    //赋值位图
m_progressTiled.SetBitmap(IDB_TILE);

你的进度控件现在是CProgressCtrlST!

类方法

SetBitmap(设置位图)
设置用来绘画进度栏位图.

//参数:`[IN]`用作背景的位图的`nBitmap`资源`ID`.传递`无效`以删除以前的位图.`[IN]bRepaint`如果为`真`,则重画控件.返回值:`PROGRESSST_OK`成功执行函数.`PROGRESSST_INVALIDRESOURCE`找不到或加载指定的资源.
DWORD SetBitmap(int nBitmap, BOOL bRepaint = TRUE)

SetBitmap(设置位图)
设置用来绘画进度栏的位图.

//参数:`[IN]hBitmap`要用作背景的位图的句柄.传递`无效`以删除以前的位图.`[IN]bRepaint`如果为`真`,则重画控件.返回值:`PROGRESSST_OK`成功执行函数.`PROGRESSST_INVALIDRESOURCE`找不到或加载指定的资源.
DWORD SetBitmap(HBITMAP hBitmap, BOOL bRepaint = TRUE)

设置范围
设置进度栏控件范围的上限和下限,并重画进度栏反射新的范围.

//参数:`[IN]nLower`指定范围的下限(默认值为零).`[IN]nUpper`指定范围的上限(默认值为`100`).//
void SetRange(int nLower, int nUpper)

SetStep
指定进度栏控件步长增量.
步进增量是调用StepIt增加进度栏当前位置的量.

//参数:`[IN]nStepNewstepincrement`.返回值:上一步增量.
int SetStep(int nStep)

SetPos

nPos指定设置进度栏控件当前位置,并重画进度栏反映新位置.
进度栏控件的位置不是屏幕上的物理位置,而是在SetRange指示上限下限范围间.

//参数:`[IN]nPos`进度栏控件的新位置.返回值:进度栏控件的上个位置.
int SetPos(int nPos)

StepIt
进度栏控件当前位置前进步长增量,并重画进度栏反映新位置.

SetStep方法设置步骤增量.

//返回值:进度栏控件的上个位置.
int StepIt()

OnDrawText
每次重画进度栏时,都会调用此函数.
它是一个让继承类自画虚函数.
默认实现闲着.

//参数:`[IN]`指向设环的`pDC`指针.`[IN]nPercentage`进度栏的当前百分比.`[IN]rcCtrl`指示整个控件的维度的`CRect`对象.`[IN]rcProgress`一个`CRect`对象,指示当前显示的条形的大小.如果进度是垂直的,则为`[IN]bVertical`,否则为`假`.//
virtual void OnDrawText(CDC* pDC, int nPercentage, CRect rcCtrl, CRect rcProgress, BOOL bVertical)

GetVersionI
短值形式返回类版本.

//返回值:`Classversion`.除以`10`得到实际版本.
static short GetVersionI()

GetVersionC
串值返回类版本.

//返回值:指向包含类`版本`的以`无效`结尾的串的指针.
static LPCTSTR GetVersionC()

原文地址:https://blog.csdn.net/fqbqrr/article/details/145311469

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!