anpassen eines ChildWindows ans Parent? (WM_SIZE)
-
stimmt es, dass man ein ChildWindow im WM_SIZE-handler des parentwindows an dieses anpasst?
ich frage, weil ich eine GroupBox laufend an die fenstergrösse anpassen möchte. dazu setze ich im WM_SIZE-handle die grösse der box und zeichne es neu mit MoveWindow().
//im Message-Handler: case WM_SIZE: return OnSize(lParam); //-------------------------------------- BOOL CppAppWnd::OnSize(LPARAM lParam) { // automatisch angepasste Group01-Box Group01Rect.left = 10; Group01Rect.top = 43; Group01Rect.right = LOWORD(lParam)*2/3 + 17; //um 17 breiter als Inhalt Group01Rect.bottom = HIWORD(lParam)*2/3 + 24; //um xx höher als MapScrollBox MoveWindow(hGroup01, Group01Rect.left, Group01Rect.top, Group01Rect.right, Group01Rect.bottom, TRUE); //weitere ChildWindows werden angepasst.. }leider funktioniert das so nicht, wie es soll. die hälfte wird gar nicht gezeichnet, es gibt dauernd abstürze.. wo ist der fehler?
-
hab schon selber die lösung heraus"gepröbelt"..
BOOL CppAppWnd::OnPaint() { PAINTSTRUCT ps; // die drei BeginPaint(hAppWnd,&ps); // zeilen EndPaint(hAppWnd,&ps); // fehlten return 0; }ev. kann mir noch jemand erklären, wieso das solche probleme verursacht.. (es ging wirklich nichts mehr). andernfalls: sorry für die "belästigung"

-
Wenn du WM_PAINT (bzw. OnPaint?!) abfängst, dann musst du dort auch Begin-/EndPaint aufrufen - sonst produzierst du eine Endlosschleife

-
oder du lässt das DefWindowProc machen...
-
stimmt.. die endlosschleife hab ich erlebt: 100% CPU-auslastung..
