Tab Control Przykrywa Image

0

Witam!
Jakbym nie rysował, czego bym nie zrobił. Próbowałem superclassingu na Tab Control, najpierw wywoływałem funkcje obsługującą Tab Control, później dopiero obrazek. Nic nie pomogło. Dlatego zwracam się z olbrzymią prośbą - Pomóżcie! Obrazek jest importowany z *.png za pomocą WIC i rysowany funkcją AlphaBlend (BitBlt daje ten sam efekt). Próbowałem stworzyć kontolkę na samym szczycie i na jej kontekście rysować:

( BeginPaint( hControlOnTop, &ps ) )

nie zadziałało. O dziwo jeśli wrzucę obrazek do kontrolki STATIC to działa. Google na ten temat milczy (także po ang), albo po prostu nie wiem czego szukam. Niestety STATIC nie mogę użyć, bo nie obsługuje przeźroczystości. Pozostało mi tylko liczyć na pomoc :)

0

Jak zauważyłeś przezroczystość + windows controls nie idą w parze :>
Jeśli chcesz mieć kontrolki z przezroczystością zaleca się zastosować "modern Ribbon Framework" http://msdn.microsoft.com/en-us/library/windows/desktop/dd940497(v=vs.85).aspx
zamiast klasycznych Windows Controls

Nie mniej jednak jeśli się uprzeć poprzez subclassing powinieneś osiągnąć zamierzony efekt, po prostu w subclassowanym WM_PAINT wywołujesz poprzednie rysowane (czyli wołasz WM_PAINT dla OldProc) - żeby narysować to co standardowo rysuje tab, a dopiero po tym wołasz swoje BeginPaint + EndPaint i rysujesz jako AlphaBlend - powinno działać

0

Dzięki wielkie. Właśnie postanowiłem jeszcze raz zrobić superclassing na trochę innych zasadach i działa tylko ma problemy z rysowaniem jakieś dziwne. Zrobiłem coś takiego:

Kod brzydki i pisany na szybko, tylko po to, żeby sprawdzić czy działa. Oczywiście do przepisania :)

http://wklej.org/hash/c0cd84dcfb9/

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