wxWidgets 的进度条控件没有提供改变颜色的接口,在Windows中,我们实际上可以通过向控件发送消息来间接的实现这个功能
Windows自己的进度条控件有以下三种状态
用类似下面的代码即可控制进度条显示绿红黄三种颜色
SendMessage(m_gauge1->GetHWND(), PBM_SETSTATE, PBST_NORMAL,0);
SendMessage(m_gauge1->GetHWND(), PBM_SETSTATE, PBST_PAUSED, 0);
SendMessage(m_gauge1->GetHWND(), PBM_SETSTATE, PBST_ERROR, 0);
如果确实有需要自定义颜色的需求,可以参考下面的链接,调用Windows的api来设置。
参考链接:
https://learn.microsoft.com/en-us/windows/win32/controls/bumper-progress-bar-control-reference-messages
https://learn.microsoft.com/en-us/windows/win32/controls/pbm-setstate