2 u013141594 u013141594 于 2015.05.30 10:25 提问

MFC 进度条颜色怎么设置?

::SendMessage(m_progress.GetSafeHwnd(),PBM_SETBARCOLOR,0,RGB(255,0,255));

4个回答

caozhy
caozhy   Ds   Rxr 2015.05.30 12:22
已采纳

最简单的是自己重绘。你的代码是老黄历,不适合xp以上启用了virtual style的情形。

autocyz
autocyz   2015.05.30 10:59
u012891246
u012891246   2015.05.30 11:05

1 建立基于对话框的应用程序,然后拖放一个进度条控件,并且关联CProgressCtrl类的变量m_Progress.

  1. 在 OnInitDialog() 函数里 定义一个定时器,以及设置进度条的一些参数,发送相关的消息

    SetTimer(1,1000,NULL);

    m_Progress.MoveWindow(100,10,20,200);

    m_Progress.SetRange(1,100);

    m_Progress.SetStep(5);

    m_Progress.SetPos(0);

    m_Progress.SendMessage(PBM_SETBKCOLOR, 0, RGB(0, 0, 0));//背景色

    m_Progress.SendMessage(PBM_SETBARCOLOR, 0, RGB(0, 255, 0));//前景色

  2. 添加定时器 WM_TIMER 消息响应函数
    void CMyProgressDlg::OnTimer(UINT nIDEvent)
    {

    // m_Progress.StepIt();
    int nPos=rand()%100; //根据随机数值 动态改变进度条的数值
    m_Progress.SetPos(nPos);
    CString str;
    str.Format("%d",nPos);
    SetDlgItemText(IDC_STATIC,str);
    CDialog::OnTimer(nIDEvent);
    }

瞧,是不是很简单呢,实现效果如下 背景颜色为黑色 前景颜色为绿色
MFC 如何改变进度条的颜色 - 阿浪 - 温先良--桂林理工大学

在项目过程中,需要实现根据 麦克风的接收的音量来动态调节 进度条的状态,这几天就要实现这个功能了。

autocyz
autocyz 你这也是复制那篇博客的内容
2 年多之前 回复
a1193561652
a1193561652   Rxr 2015.05.30 11:18

PBM_SETBKCOLOR和PBM_SETBARCOLOR消息分别设置背景色和前景色。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!