CProgressCtrlX::CProgressCtrlX() : m_rcBorders(0,0,0,0) { // Init colors m_clrBk = ::GetSysColor(COLOR_3DFACE); m_clrTextOnBar = ::GetSysColor(COLOR_CAPTIONTEXT); m_clrTextOnBk = ::GetSysColor(COLOR_BTNTEXT); // set gradient colors COLORREF clrStart, clrEnd; clrStart = clrEnd = ::GetSysColor(COLOR_ACTIVECAPTION); /*#if(WINVER >= 0x0500) BOOL fGradientCaption = FALSE; if(SystemParametersInfo(SPI_GETGRADIENTCAPTIONS, 0, &fGradientCaption, 0) && fGradientCaption) clrEnd = ::GetSysColor(COLOR_GRADIENTACTIVECAPTION); #endif / WINVER >= 0x0500 */ SetGradientColors(clrStart, clrEnd); m_nStep = 10; // according msdn m_nTail = 0; m_nTailSize = 40; m_pbrBk = m_pbrBar = NULL; m_bEmpty = false; }
LRESULT CProgressCtrlX::OnSetBarColor(WPARAM clrEnd, LPARAM clrStart) { SetGradientColors(clrStart, clrEnd ? clrEnd : clrStart); return CLR_DEFAULT; }