[vc++ mfc] zmiana pozycji kontrolki

0

Witam, chcialbym dynamicznie zmienic pozycje kontrolki w pionie, jednak mam z tym pewien problem. Probowalem funkcje movewindow i setwindowpos jednak mam pewien blad przy przeliczaniu odleglosci.
Pobieram orginalna wartosc
GetWindowRect(&rect);
rect.top += 72;
i chcialbym by przesunelo mi moje okienko o 72 pixele w dol...
movewindow i setwindowpos pewnie biora te okienkowe miary a nie pixele i nie wiem jak to rozwiazac :/

0
MoveWindow(hWnd, rect.left, rect.top+72, rect.Width(), rect.Height(), TRUE);
0

i tez identycznie zrobilem na poczatku, jednak dodaje mi wiecej niz 72...

GetDlgItem(IDC_WSTECZ)->GetWindowRect(&rect);
GetDlgItem(IDC_WSTECZ)->MoveWindow(rect.left,rect.top+72,rect.Width(),rect.Height());
GetDlgItem(IDC_WSTECZ)->GetWindowRect(&rect);

po wykonaniu pierwszego pobrania rect.top = 53... druga linijce rec.top+72, by pobierajac w trzeciej linijce obszar rect.top = 167...
53 + 72 tak raczej nie rowna sie 167...

(IDC_WSTECZ to ID przycisku)

0

Dobra.. znalazlem wkoncu rozwiazanie mojego problemu...
Przed movewindow nalezy dodac ScreenToClient(&rect); by przekonwertowal pixele, na miare okna dialogowego...

po cholere oni w ogole wprowadzili wlasna miare okna dialogowego :( przez to nie mozna dorownywac co do pixela :/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.