Przeźroczysty CStatic

0

Cześć, mam na formie kontrolkę CStatic. I chcę, żeby jej tło było przeźroczyste.
Więc obsługuję komunikat WM_CTLCOLOR:

 
HBRUSH CLiteIODialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	switch(nCtlColor)
	{
	case CTLCOLOR_STATIC:
		pDC->SetTextColor(RGB(0, 0, 0));
		pDC->SetBkMode(TRANSPARENT);
		break;
	}

	return blabla;
}

W efekcie mój CStatic ma faktycznie przeźroczyste tło, ale gdy zmienię mu tekst za pomocą SetWindowText, to wtedy stary tekst się nie czyści.
Wygląda to jakby nowy tekst został wypisany na starym. Jak temu zaradzić?
Próbowałem też z InvalidateRect, ale bezskutecznie:

 
CRect r;
m_hintLabel.GetWindowRect(&r);
ScreenToClient(&r);
InvalidateRect(&r);
m_hintLabel.SetWindowText(txt); //nie ważne, czy InvalidateRect będzie przed, czy po SetWindowText
0

OK, doszedłem. Parent nie może mieć CLIP_SIBLINGS i/lub CLIP_CHILDREN

1 użytkowników online, w tym zalogowanych: 0, gości: 1