Mentaris Temat założony przez niniejszego użytkownika |
Zmiana koloru konkretnej kontrolki WinApi » 2015-07-08 20:45:35 Witam, w WinApi można zmienić kolor wszystkich kontrolek w oknie, jednak ja chciałbym zmienić kolor konkretnego buttona(jednego, lub dwóch). Da się coś takiego zrobić? Powiedzmy taki krótki kodzik który powie że komputer ma zmienić kolor kontrolki o danym hwnd lub ID(#define ID int). return (LRESULT) hbrush zmienia automatycznie wszystkie buttony. Super by było gdyby dało się coś takiego zrobić, jest mi to dość potrzebne. |
|
pekfos |
» 2015-07-08 21:01:15 |
|
Monika90 |
» 2015-07-08 21:11:50 return (LRESULT) hbrush zmienia automatycznie wszystkie buttony. |
To takie coś działa? Jaką masz wersję Windows? |
|
Mentaris Temat założony przez niniejszego użytkownika |
» 2015-07-08 21:30:34 Dzięki pekfos za przypomnienie, może uda mi się wyciągnąć kodzik za zmiane koloru, bez tego całego gradientu. Monika90 To znaczy ja wprowadzam sobie to do obsługi komunikatu WM_CTLCOLORBTN, uprzednio styl kontrolek zmieniając na BS_OWNERDRAW i działa, tylko że właśnie zmienia kolor wszystkich buttonów. Czytałem że bez Tego stylu mówiącego że chce od podstaw stworzyć kontrolke nie mogę zmienić nic w buttonie oprócz Textu, a gdy Dam owner to automatycznie nie mogę używać SetTextWindow tylko jakiś TextOut lub TextDraw, trochę lipa (więcej z tym zabawy). A co do windowsta to 7 64, a jeśli ci chodzi o dokładną wersje buildu to ni wim gdzie to sie sprawdza. |
|
Monika90 |
» 2015-07-08 21:41:56 lParam komunikatu WM_CTLCOLORBTN zawiera uchwyt przycisku którego komunikat dotyczy, więc możesz zwracać różne kolory (pędzle) dla różnych uchwytów. |
|
Mentaris Temat założony przez niniejszego użytkownika |
» 2015-07-08 22:04:29 Działa, dziękuje! Szczerze, jako rozwiązanie bardziej wyobrażałem sobie zmianę wartości jakieś klasy np klas.hbrush = hbrush, widzę jednak że sam return w swoim działaniu jest bardziej skomplikowany niż sądziłem. |
|
Monika90 |
» 2015-07-08 22:31:43 W moim Windows to nie działa, gdy ustawię styl BS_PUSHBUTTON|BS_OWNERDRAW, to zamiast przycisków wyświetlają mi się tylko kolorowe prostokąty. :(
|
|
Mentaris Temat założony przez niniejszego użytkownika |
» 2015-07-08 22:44:59 Możesz tylko jeden taki styl wybrać, BS_PUSHBUTTON To z tego co czytałem gotowa kontrolka, coś jak WS_VSCROLL do okna. Jak wybierzesz OWNER to musisz chyba sama dodać tą animacje(dwie bitmapy) przycisku itp przez jakąś obsługe komunikatów typu PAINT Albo DRAWITEM, tak przynajmniej mi sie wydaje z tego co czytałem, bo sam osobiście nie bawiłem się tym jakoś bardziej. Tekst dodawałem TextOutem jak wspominałem choć z tym mam jak na razie drobne problemy. |
|
« 1 » |