Rahmen um Fenster zeichnen
-
Hallo Leute,
ich versuche mit DrawEdge einen Rahmen zu zeichnen aber es funktioniert einfahc nicht:
case WM_PAINT: HDC hdc; RECT rc; GetWindowRect(hwndDialog, &rc); hdc = GetWindowDC(hwndDialog); DrawEdge(hdc, &rc, EDGE_SUNKEN, BF_RECT); ReleaseDC(hwndDialog, hdc); return 0;Das Fenster wird dabei so wie immer angezeigt (ohne Rahmen).
hdc und rc sind OK und DrawEdge gibt eine 1 zurück (also erfolgreich).
Warum funktioniert es trotzdem nicht?
-
In WM_PAINT sollte man immer "BeginPaint" und "EndPaint" verwenden um den DC zu erhalten!
-
Das hatte ich auch schon ausprobiert, hat aber leider auch nicht funktioniert:
HDC hdc; RECT rc; PAINTSTRUCT ps; GetWindowRect(hwndDialog, &rc); hdc = BeginPaint(hwndDialog, &ps); success = DrawEdge(hdc, &rc, EDGE_SUNKEN, BF_RECT); EndPaint(hwndDialog, &ps); return 0;Auch hier gibt es keinen Fehler aber trotzdem sieht man keinen Rahmen.
-
Ich hab das Problem gefunden. GetWindowRect war falsch, es muss GetClientRect genutzt werden.