dfjqorzh
2015-05-30 02:25
采纳率: 90%
浏览 2.9k
已采纳

MFC 进度条颜色怎么设置?

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2015-05-30 04:22
    已采纳

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

    已采纳该答案
    打赏 评论
  • autocyz 2015-05-30 02:59
    打赏 评论
  • fsgg 2015-05-30 03: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 如何改变进度条的颜色 - 阿浪 - 温先良--桂林理工大学

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

    打赏 评论
  • 纵横车 2015-05-30 03:18

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

    打赏 评论

相关推荐 更多相似问题