MFC - tło pod CStatic

0

Witam
Piszę program w Visual C++ z użyciem MFC. Zmieniłem tło dialogów na tło gradientowe, rysowane w metodzie OnEraseBackground. Problem w tym, że tekst na dialogu (CStatic) ma inne tło. W metodzie OnCtlColor można to tło zmienić ale trzeba zwrócić CBrush taki jakie ma być tło, co przy gradiencie sprowadzało by się do wyliczenia koloru w zależności od tego gdzie znajduje się Static.
Czy można jakoś zmusić tekst CStatic do tego żeby rysował się przezroczysty? SetBkMode(TRANSPARENT) tu nie pomaga.

0

CStatic to okno (o ile sie nie myle) wiec do kompletu dolacz WS_EX_TRANSPARENT to powinno pomoc. To podejscie w stylu winapi na czym mfc stoi. Ewentualnie poszukaj gotowej klasy do mfc - kiedys takie widzialem w stylu CtransparentStatic. A i jeszcze powinno sie chyba pokombinowac z WM_ERASEBKGND ... juz sie pozapominalo :) ach ten .NET

0

Użyłem klasy CTransparentStatic i jest ok. Problem jest jeszcze z Radiobuttonami, checkboxami itp. Ogólnie porażka żeby tak prostą rzecz musieć robić takimi metodami.

0

przesiadz sie na WPF po to to wymyslono ... MFC powoli (albo i nie opinie sa rozne) wychodzi z uzytku.

Chyba nie napisales niczego w czystym WInAPI albo X, ze tak narzekasz :)

0

Co do WPF mam mieszane uczucia. Tam do prostego kalkulatora trzeba tonę ramu i gigaherce w procesorze :)
Kiedyś na coś się przesiądę ale jeszcze nie teraz.

0

znaki czasu kiedys na MFC wydawalo sie, ze potrzeba ton ramu ...
Ja nawet nie mialem miejsca na pierwszym kompie aby zainstalowac visuala z MFC ledwo co delphi 2 upchalem :)
a katalog windows zajmowal kolo 40-70MB dla porownania teraz 14GB po przenoszeniu kopii poaktualizacyjnych ...

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