Problem mit GetDCEx
-
mein klassenstyle ist CS_PARENTDC | CS_GLOBALCLASS
beim zeichnen in WM_NCPAINT
RECT rc; GetWindowRect(hWnd, &rc); OffsetRect(&rc, -rc.left, -rc.top); HDC hdc = ::GetDCEx(hWnd, (HRGN)wParam, DCX_WINDOW | DCX_INTERSECTRGN | DCX_PARENTCLIP); DrawEdge(hdc, &rc, BDR_SUNKENOUTER, BF_RECT | ((m_bFocus && m_bFlatOnFocus)?BF_FLAT:0)); ::ReleaseDC(hWnd, hdc);
wird zwar mein border ordendlich gezeichnet, aber sobald ich ein anderes fenster (mit der mouse) über mein fenster bewege, wird mein border nur teilweise gezeichnet.
was mache ich falsch ??
-
Welcher Teil wird denn gezeichnet - der der verdeckt war?
edge
Specifies the type of inner and outer edges to draw. This parameter must be a combination of one inner-border flag and one outer-border flag. The inner-border flags are as follows.Wozu verschiebst du das Rect eigentlich?
-
flenders schrieb:
Welcher Teil wird denn gezeichnet - der der verdeckt war?
ja genau der
flenders schrieb:
Wozu verschiebst du das Rect eigentlich?
DCX_WINDOW ist doch der nicht clientbereich, 0,0 ist doch die position des linken, oberen nc bereich oder ?
-
Mit der Position solltest du Recht haben - stand wohl etwas auf der Leitung
Hast du jetzt bei DrawEdge ein inner-border flag mit angegeben?