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

[WinAPI] Odświeżanie obszaru klienta

Ostatnio zmodyfikowano 2011-11-30 21:18
Autor Wiadomość
piotreczek5
Temat założony przez niniejszego użytkownika
[WinAPI] Odświeżanie obszaru klienta
» 2011-11-30 20:46:25
Witam.

Tworzę program i zmagam się z pewnym problemem. Chcę przesuwać obiekty "namalowane" w WM_PAINT w dowolny punkt w obszarze klienta  metodą drag&drop.

Samo przesunięcie kończy się powodzeniem. Odrysowanie nowego obiektu również działa jak należy. Jednakoż pozostaje ślad po obiekcie w miejscu, w którym niegdyś się znajdował.

Po wykonaniu wiadomości WM_PAINT tzn. wysłanej przez Windowsa(nie zdefiniowanej przeze mnie np. SendMessage(hwnd,WM_PAINT,0,0) ) poprzez najechanie na obszar klienta innym oknem wszystko pięknie odrysowuje się. Pozostaje jedynie obiekt w nowym miejscu.

Docelowo wszystko ma się dziać na naszych oczach. Tak jak przesuwanie ikon na pulpicie.

Korzystałem z InvalidateRgn(),InvalidateRect(),RedrawWindow(),SendMessage() i nic.

Czy da się jakoś w czasie rzeczywistym wyczyścić obszar klienta zupełnie i na nowo narysować dane ?

Dziękuję z góry za odpowiedź.
P-44996
piotreczek5
Temat założony przez niniejszego użytkownika
Problem rozwiązany!
» 2011-11-30 21:18:17
Metodą prób i błędów doszedłem do tego. Nie myślałem, iż będzie to takie proste.


Dla innych : Gdy napotkacie taką sytuację wystarczy w InvalidateRect(HWND,RECT,BOOL); przy wartości BOOL ustawić nie 0 lecz 1.


Pozdrawiam Piotrek
P-44999
« 1 »
  Strona 1 z 1