2016 - 2024

感恩一路有你

如何解决C 设置进度条颜色不生效的问题

浏览量:1415 时间:2024-08-13 14:14:02 作者:采采

今天有网友问我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,它演示了在编辑视图中显示文本文件的加载过程,在界面的状态栏中的进度指示器模拟显示文件的加载进度。当文本加载完毕后,进度条会隐藏起来。由于该程序无法进行拷屏操作,所以这里没有给出状态栏中显示进度条的界面效果图,读者可以运行本书所带光盘中的程序代码观看相应的效果。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。