Przycisk z tłem

0

Piszę w C++ Builder 2007
Widziałem, jak zrobić okrągłą formatkę itp., ale ciężko znaleźć informacje o tym, jak zrobić przycisk, który będzie miał w tle obrazek, tak jak ma to miejsce w programach z obsługą skórek. Do TBitBtn można wstawić ikonę, ale chciałbym żeby przycisk zamiast normalnego "windowsowego" wyglądu miał w tle jakiś obrazek, przydałby się też efekt rollover. Jak to napisać? Może być coś z WinAPI, byle działało. Chodzi mi o najprostsze rozwiązanie, bo można oczywiście wstawić 2 TImage (tło + ikona) i na to rozciągnięty TLabel z tekstem (nie chcę, żeby tekst był elementem grafiki, ma być wstawiany oddzielnie, w innym przypadku sprawa jest prosta), ale szukam czegoś mniej złożonego.

0

Przycisk posiada odpowiedni styl, potem musisz np. z zasobów lub pliku załadować bitmapę i "wysłać ją na button".

Wygląda to mniej więcej tak, wersja z bitmapą w zasobach aplikacji.

HWND hPrzycisk = CreateWindowEx(0, "BUTTON", "", 
                                     WS_CHILD | WS_VISIBLE | BS_BITMAP, 
                                     5, 5, 
                                     30, 30, 
                                     okno_grafiki, (HMENU)500, hInstance, NULL);

HBITMAP hBitmapa = (HBITMAP) LoadImage(hInstance, MAKEINTRESOURCE(200), IMAGE_BITMAP,0,0, LR_CREATEDIBSECTION);

SendMessage(hPrzycisk,BM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)hBitmapa);

W zasobach musisz mieć, oczywiście możesz dla czytelności porobić makrodefinicje.

200 BITMAP "przycisk_linie.bmp"

To by było w WinAPI, niestety w C++ Builderze nie pracuję, nie mogę pomóc.

Pozadrawiam
Mrowa.

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