Skocz do zawartości

kolejne kłopoty z Edit'em


Riddle

Recommended Posts

Mam kontrolke EDIT, która jest tylko do odczytu. Stosuje WM_COLORSTATIC, aby zmienić jej kolory. Wypisuje na niej tekst. W momencie kiedy "przewijam" pionowym scrolem i obraz zamazuje mi się.
Co mam zrobić aby ten tesk wyświetlał się normalnie..????

Kiedy NIE korzystam z WM_COLORSTATIC tego problemu nie ma.

Próbowałem korzystać z funkcji InvaliRect, WindowUpdate i nic.....

Link do komentarza
Udostępnij na innych stronach

case WM_CTLCOLORSTATIC:
{
if (lParam == (LPARAM) GetDlgItem(hdwnd, IDC_EDIT1))
{
SetTextColor ((HDC)wParam,RGB(0,0,0)) ;
SetBkMode((HDC)wParam,TRANSPARENT);
return (BOOL)(LRESULT)CreateSolidBrush(RGB(255,160,0));
}
if(lParam != (LPARAM) GetDlgItem(hdwnd, IDC_EDIT1))
{
SetTextColor ((HDC)wParam,RGB(0,0,0)) ;
SetBkMode((HDC)wParam,TRANSPARENT);
return (BOOL)(LRESULT)CreateSolidBrush(RGB(180,132,255));
}
}
break;

Link do komentarza
Udostępnij na innych stronach

m-rog napisał:
return (BOOL)(LRESULT)CreateSolidBrush(RGB(180,132,255));

Powiedz mi, po co to na BOOL rzutujesz?

Przyczyną zamazywania się okienka może być fakt (choć to mało prawdopodobne, ale sprawdź), że nie zwalniasz stworzonego przez siebie brusha. Wielokrotne wywołanie tej procedury (przy każdorazowym odrysowaniu się każdej kontrolki typu static na Twoim oknie) powoduje, że tworzy się bardzo wiele obiektów typu BRUSH, których potem nie kasujesz.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...