`
helpbs
  • 浏览: 1159422 次
文章分类
社区版块
存档分类
最新评论

在状态行中的任意地方建立一个进度条

 
阅读更多

1.从View菜单中选择Resource Symbols,加入一个新的ID(在本例中假设为<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

ID_INDICATOR_PROGRESS_PANE),让计算机为该ID赋值也许是较好的选择.

2. 在MainFrm.cpp中寻找indicators数组,然后在该数组中加入上面新增加的ID,

请将它放在其它ID的后面,这将使以后的进度条出现在状态行的最右边,如果你

不想 让进度条出现在最右边,你也可以将ID放置在其它你想出现的地方.

3. 打开资源文件中的字符串表,然后插入一个新字符串.你可以通过Insert菜单

来加入一个新字符表,或者在字符串表上单击右键也可以完成该工作.

4. 该字符串的字符为新增的ID,后面的消息,请加入适当的空格.(加入的空格

至少要比建立的进度条要大)

现在我们已经建立了一个空的长方形,接下来我们要在这里面放入一个进度条.

1. 在MainFrm.h中声明一个公共变量,类型为CProgressCtrl(假设为m_progress)

2. 在MainFrm.h中声明一个保护变量,类型为BOOL(假设为m_bCreated)

3. 在MainFrm.cpp的OnCreate()函数中,将m_bCreated初始化为FALSE:

m_bCreated = FALSE;

4. 现在当我们需要使用进度条时,我们先检查一下是否已经建立,如果还没有,

那么 我们需要建立一个:

CMainFrame::OnSomeLongProcess()

{

RECT MyRect;

// substitute 4 with the zero-based index of your status bar pane.

// For example, if you put your pane first in the indicators array,

// you抎 put 0, second you抎 put 1, etc.

m_wndStatusBar.GetItemRect(4, &MyRect);

if (m_bCreated == FALSE)

{

//Create the progress control

m_Progress.Create(WS_VISIBLE|WS_CHILD, MyRect, &wndStatusBar, 1);

m_Progress.SetRange(0,100); //Set the range to between 0 and 100

m_Progress.SetStep(1); // Set the step amount

m_bCreated = TRUE;

}

// Now we抣l simulate a long process:

for (int I = 0; I <100; I++) { Sleep(20); m_Progress.StepIt(); } }

如果窗口在建立进度条之后,改变了大小,那么进度条并不会被重新调整位置,所

以 我们必须在WM_SIZE事件中加入自己的代码来调整该进度条的位置:

void CMainFrame::OnSize(UINT nType, int cx, int cy)

{

CMDIFrameWnd::OnSize(nType, cx, cy);

RECT rc;

m_wndStatusBar.GetItemRect(4, &rc);

// Reposition the progress control correctly!

m_Progress.SetWindowPos(&wndTop, rc.left, rc.top, rc.right - rc.left,

rc.bottom - rc.top, 0);

}

这就是状态行中实现进度条的方法,虽然看上去很长,但事实上它非常简单.
分享到:
评论

相关推荐

    电脑高手必备 Windows系统35招实用技巧

    什么是实用技巧,就是那种能经常用得着的值得收藏起来的应用方法。本文 中笔者就将向大家介绍35种Windows操作系统... 解决的办法是建立一个“Boot.ini”文件即可。其内容为:  [Boot Loader]  Default=C:  ...

    Python Cookbook

    11.13 在Tkinter中实现一个带标签的记事本 429 11.14 使用wxPython实现带面板的记事本 431 11.15 在Jython中实现一个ImageJ插件 433 11.16 用Swing和Jython来通过URL查看图片 434 11.17 在Mac OS中获得用户输入 ...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例096 在数组中添加一个数组 113 实例097 不改变长度删除数组中的元素 115 实例098 删除数组元素后改变其长度 116 4.2 常用数组排序算法 117 实例099 使用选择排序法对一维数组进行排序 117 实例100 使用冒泡排序...

    C#.net_经典例子400个

    实例011 在状态栏中显示检查框 23 实例012 带进度条的状态栏 25 实例013 状态栏中加入图标 26 实例014 OutLook界面 27 实例015 带带导航菜单的主界面 29 实例016 图形化的导航界面 32 实例017 菜类QQ的程序...

    delphi 开发经验技巧宝典源码

    0209 如何把ListBox中的内容拖曳到另一个ListBox中 139 0210 把DBGrid中的数据赋给数组 139 0211 如何获取DataGrid单元格中的内容 140 0212 如何锁定文本框中的文本 141 0213 如何设置光标到文本框的末尾 ...

    VB编程资源大全(控件 其它1)

    在一个里发生的事情也会在另一个中发生,轻松帮助你完成“客户/服务器”设计(276KB) 90,fsanimicon.zip 在任务条上加入动画图标(77KB) 91,trispace.zip 自由软件, 此控件是一个软件 3d 引擎。...

    VB编程资源大全(控件 其它2)

    在一个里发生的事情也会在另一个中发生,轻松帮助你完成“客户/服务器”设计(276KB) 90,fsanimicon.zip 在任务条上加入动画图标(77KB) 91,trispace.zip 自由软件, 此控件是一个软件 3d 引擎。...

    VB编程资源大全(控件 其它3)

    在一个里发生的事情也会在另一个中发生,轻松帮助你完成“客户/服务器”设计(276KB) 90,fsanimicon.zip 在任务条上加入动画图标(77KB) 91,trispace.zip 自由软件, 此控件是一个软件 3d 引擎。...

    delphi 开发经验技巧宝典源码06

    0209 如何把ListBox中的内容拖曳到另一个ListBox中 139 0210 把DBGrid中的数据赋给数组 139 0211 如何获取DataGrid单元格中的内容 140 0212 如何锁定文本框中的文本 141 0213 如何设置光标到文本框的末尾 ...

    VB编程资源大全(控件 窗体1)

    在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB) 52,rulerbar.zip 显示纵向或横向标尺的ocx控件(28KB) 53,axafx30....

    VB编程资源大全(控件 窗体2)

    在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB) 52,rulerbar.zip 显示纵向或横向标尺的ocx控件(28KB) 53,axafx30....

    Excel VBA实用技巧大全 附书源码

    01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...

    PT80-NEAT开发指南v1.1

    建立一个应用程序 ................................................................................................................................ 17 应用程序的关闭 .......................................

    c#时尚编程100例 .rar

    实例21 第一个应用程序 实例22 简单的图片浏览器 实例23 点不中的按钮 实例24 使用状态栏 实例25 使用菜单 实例26 使用工具条 实例27 自制数字时钟 实例28 自己制作控件 实例30 使用进度条 实例31 浏览我的...

Global site tag (gtag.js) - Google Analytics