win32 GUI, użycie funkcji GetClientRect

0

mam kod w którym chcę aby to co rysuje, prostakąt, elipsa, itp. było wyśrodkowane w oknie, niezależnie od rozmiaru okna, tzn. że jak coś rysuje to to jest dokładnie na środku, ta figura będzie zmieniac kształt, ktoś ma jakiś pomysł? mam x,y: zmienne odpowiadajace za początek rysowania i X,Y, zmienne ktore koncza rysowanie.

0

((x2-x1)/2)-(xFigury/2) - miejsce z ktorego powinienes zaczac rysowac X
((y2-y1)/2)-(yFigury/2) - miejsce z ktorego powinienes zaczac rysowac Y

:)

0

StartX = ((clientRect.right-clientRect.left)/2)-(StartX/2);
StartY = ((clientRect.bottom-clientRect.top)/2)-(StartY/2);
o to chodzi?

0
wojti911 napisał(a)

StartX = ((clientRect.right-clientRect.left)/2)-(StartX/2);
StartY = ((clientRect.bottom-clientRect.top)/2)-(StartY/2);
o to chodzi?

Tak.

0

Dodam jeszcze abyś oznaczył klasę okno w którym rysujesz flagami CS_HREDRAW i CS_VREDRAW (przy RegisterClassEx). Dzięki temu będziesz dostawał komunikat WM_PAINT jeśli użytkownik chwyci za róg okna i będzie zmieniał jego rozmiar. Pozwoli to na przerysowanie figury w nowym położeniu za każdym razem gdy rozmiar okna zmieni się.

1 użytkowników online, w tym zalogowanych: 0, gości: 1