Flickerproblem on some machines
I want to draw a header in an own view that slowly fades out.
My current approach is to start some timers that invalidate a rectangle
and draw the box with some gdi+ functions. See (the simplified) code below.
On some machines I get a very anoying flicker by using InvalidateRect(). The
reason is unknown.
Does anyone know a better solution to display some text that is fading out?
(Btw: I can't use drawing in a custom NC-Area as I get problems with CSplitterWnd)
void CMyView::OnDraw(CDC* pDC)
if(m_alphaHeading > 0)
DWORD capCol = GetSysColor(COLOR_ACTIVECAPTION);
Gdiplus::SolidBrush brushBG(Gdiplus::Color(m_alphaHeading, GetRValue(capCol), GetGValue(capCol), GetBValue(capCol)));
//Write some additional text
void CMyView::OnTimer(UINT nIDEvent)
if(nIDEvent == ID_TM_FADE_TITLE_START)
m_alphaHeading = 255;
SetTimer(ID_TM_FADE_TITLE, 50, 0);
if(nIDEvent == ID_TM_FADE_TITLE)
if(m_alphaHeading == 0)