Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI] własna kontrolka - Funkcja SetWindowText

Ostatnio zmodyfikowano 2010-11-11 13:02
Autor Wiadomość
wojos
Temat założony przez niniejszego użytkownika
[WinAPI] własna kontrolka - Funkcja SetWindowText
» 2010-11-10 22:44:00
Mam taki mały problem. Mam własną kontrolkę (przycisk) w WinAPI. Wszystko pięknie działa, jednak zmiana tekstu w czasie działania programu nie powoduje odświeżenia kontrolki(stary tekst jest wyświetlany póki go nie zmaże np. innym oknem :D). Domyślam się, że funkcja DefWindowProc nie wywołuje InvalidateRect. Moje pytanie: Czy dobrze myślę, że należy po swojemu obsłużyć komunikat WM_SETTEXT i jeśli tak - czy okno posiada jakieś swoje specjalne miejsce na wskaźnik do tekstu czy też ja tworzę go sobie osobiście i przechowuje go przy pomocy wskaźnika w dodatkowej pamięci okna (cbWndExtra)? A może mój tok myślenia jest głupi i jest jakiś o wiele prostszy sposób na to wszystko? Z góry dziękuję za wszelką pomoc.
P-23840
DejaVu
» 2010-11-11 00:17:38
http://msdn.microsoft.com/en-us/library/ms633546(VS.85).aspx

Skoro wiesz co jest nietak to czemu nie wywołasz InvalidateRect czy cośtam innego by odrysować przycisk po zmianie treści?

/edit:
Mój tok myślenia byłby następujący:
1) Jak się tworzy buttona i gdzie nadaje się mu wyświetlaną treść?
2) Czym się modyfikuje pole za pomocą którego ustawiona została treść początkowa?
3) Czy nie zmodyfikowałem przypadkiem standardowego zachowania przerysowywania przycisków itp?
Być może przytoczyłeś dobre rozwiązanie i być może odświeżenie wyglądu przycisku jest konieczne, jednak istnieje szansa, że błąd leży w innej części kodu o której wspomniałem w pkt 3.
P-23845
wojos
Temat założony przez niniejszego użytkownika
» 2010-11-11 13:02:07
Po prostu nie obsługiwałem komunikatu WM_SETTEXT a robiła to za mnie funkcja DefWindowProc, która ładnie zmieniała tekst ale nie odświeżała okna :)
Tak czy owak problem rozwiązany, dzięki za pomoc :)
P-23852
« 1 »
  Strona 1 z 1