如何解决C 设置进度条颜色不生效的问题
今天有网友问我C 设置进度条颜色不生效的问题,小编在网上查了些资料,再根据个人的经验总结。希望能帮助到大家。
Visual C 中的进度条功能实现原理和方法
读者朋友们可能天天使用Visual C 这个强大的工具来开发应用程序。在每次加载一个项目时,为了使项目加载过程不太单调,Visual C 会在状态栏的左半部分出现一个装载进度条,用来即时显示项目的加载进度。当项目加载完毕后,进度条会隐藏起来。那么这个功能是如何实现的呢?
虽然Visual C 中的MFC类提供了标准的进度指示器控件,但我们不能直接在状态栏中使用这个控件。为了解决这个问题,可以创建一个可重用的CProgStatusBar类,这个类从CStatusBar派生,用来实现状态栏中的进度指示。整个实现过程并不复杂,思路是在状态栏创建一个进度指示器控件,将其作为子窗口来对待,然后根据不同状态来显示或隐藏进度指示器。
在具体实现CProgStatusBar类的过程中,首先在CProgStatusBar派生类中添加一个CProgressCtrl类型的数据成员m_wndProgBar,然后重载CStatusBar类的两个重要成员函数:OnCreate()和OnSize(),最后还要在该类中添加一个自定义成员函数OnProgress()。在上述三个函数中,OnCreate()负责在状态栏第一次被创建时接收控制,并创建进度指示器并将它初始化为一个子窗口。
注意在创建进度指示器控件时没有使用WS_VISIBLE,因为我们要实现的目标是仅在装载文件时进度条才显示,其余时间应用程序都隐藏它。此外,我们还需要处理父窗口大小改变时子窗口的尺寸跟随改变的问题。通常情况下,这个工作由父窗口的WM_SIZE消息处理函数OnSize()来完成。
范例程序演示进度条的使用
本文提供了一个范例程序prgsbar,它演示了在编辑视图中显示文本文件的加载过程,在界面的状态栏中的进度指示器模拟显示文件的加载进度。当文本加载完毕后,进度条会隐藏起来。由于该程序无法进行拷屏操作,所以这里没有给出状态栏中显示进度条的界面效果图,读者可以运行本书所带光盘中的程序代码观看相应的效果。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。