Chciałbym zmienić kolor przycisku. Najłatwiej wg mnie po prostu utworzyć prostokąt tam gdzie jest przycisk i wypełnić go kolorem. Tak zrobiłem i nie ma efektu żadnego. Dlaczego tak się dzieje? Może inaczej trzeba to zrobić?
Tu jest przykład bajeranckiego przycisku.
Przy czym kod tam pokazany jest o tyle brzydki, że wszystko jest wepchnięte w procedurę głównego okna.
Należałoby raczej wykorzystać mechanizm zwany “subclassing”, (CreateWindowSubclass
), wyciągnąć kod specyficzny dla przycisku do osobnej procedury, i opakować w jakieś CreateFancyButton
którego byś używał zamiast CreateWindow
.
Chyba wpadłem o co chodzi. Mój przycisk zasłania prostokat i dlatego go nie widać. Trochę słabo :) Jaki jest najprostszy sposób (jakaś funkcja) żeby pomalować tło przycisku?
Nadpisać WM_PAINT
może zajrzyj jednak pod link pod słowem "Tu" w poście od @Azarien
Na tej stronce na stackoverflow piszą że najprostszym sposobem jest dodanie stylu BS_PUSHBUTTON i BS_OWNERDRAW a potem zrobienie tak jak ja czyli stworzenie prostokąta tam gdzie przycisk. Tak robię i dalej bez efektu. Jeszcze jest możliwość użycia komunikatu WM_CTLCOLORBTN z którym nie wiem o co chodzi. Dziwne ze tu nie ma tu jakiejś prostej funkcji zmieniającej tło przycisku.