in while-schleife trotzdem Fenster benutzbar?
-
Hallo zusammen,
ich habe in WM_COMMAND: eine while-SChleife eingebaut.
Solange diese durchlaufen wird, ist das Programm nicht "benutzbar".
Wie kann ich das machen, dass das Programm weiterhin benutzbar ist? also das fenster "gemalt" wird und der User darauf zugreifen kann?
Bei VB gibts da so ein DoEvents. Gibts sowas ähnliches auch bei c++?Vielen Dank
Edwart
-
Zeichnen solltest du nur in WM_PAINT - und dann brauchst du eher einen Timer (SetTimer) und dann in WM_TIMER einfach mit InvalidateRect das Fenster dazu veranlassen, sich neu zu zeichnen.
Ansonsten kannst du zeitintensive Operationen in einen extra Thread auslagern.
-
Habs mit
UpdateWindow(hwnd);gelöst... funktioniert

Aber Danke

-
Das kannst du bei Bedarf anschließend auch aufrufen, aber vorher solltest du InvalidateRect verwenden, dann bei UpdateWindow steht:
The UpdateWindow function updates the client area of the specified window by sending a WM_PAINT message to the window if the window's update region is not empty. The function sends a WM_PAINT message directly to the window procedure of the specified window, bypassing the application queue. If the update region is empty, no message is sent.