• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program wywołuje sekcje case WM_PAINT bez użycia WindowUpdate()

0 głosów
422 wizyt
pytanie zadane 27 czerwca 2022 w C i C++ przez MichaelM Gaduła (3,000 p.)
Witam, problem polega na tym, że napisałem program, który powinien działać następująco:

- Użytkownik klika guzik uruchamiając instrukcje WM_COMMAND, sekcja ta zawiera instrukcje UpdateWindow(hwnd).
- Funkcja UpdateWindow() uruchamia WM_PAINT, w której jest instrukcja SetPixel().
- WM_PAINT ustawia wartość danego piksela.

Problem polega na tym, że piksel jest ustawiany już po uruchomieniu programu, użytkownik nie klika guzika, by zmienić wartość piksela. Nawet, gdy usunę UpdateWindow() z całego programu W_PAINT dalej działa zmienia wartość piksela.

1 odpowiedź

+2 głosów
odpowiedź 27 czerwca 2022 przez Oscar Nałogowiec (29,420 p.)
WM_PAINT system woła, kiedy będzie miał taką potrzebę. W szczególności na pewno wywoła po uruchomieniu - ktoś przecież musi narysować wnętrze okna. Wywoła też jak ktoś odsłoni okno itp.

Musisz gdzieś mieć informacje potrzebne do odrysowania okna w dowolnej chwili. Utworz sobie jakieś pole, które będzie przechowywało informacje, że guzik został kliknięty. I w zależności od tej zmiennej ustawiaj pixel lub nie.

Albo przechowuj w polu kolor pixela - na starcie niech będzie "czarny" a w obsłudze guzika zmienisz go na inny. SetPixel niech właśnie ustawia ten kolor, który jest w polu.

Wywołanie UpdateWindow służy do powiadomienia systemu, że okno wymaga dodatkowego odświeżenia, na żądanie programu. Głownie z powodu zmiany danych, które są w oknie obrazowane.

Podobne pytania

0 głosów
2 odpowiedzi 702 wizyt
pytanie zadane 15 czerwca 2022 w C i C++ przez MichaelM Gaduła (3,000 p.)
0 głosów
0 odpowiedzi 242 wizyt
pytanie zadane 15 czerwca 2022 w C i C++ przez MichaelM Gaduła (3,000 p.)
0 głosów
4 odpowiedzi 1,614 wizyt

93,741 zapytań

142,676 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...