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 :/
MoveWindow(hWnd, rect.left, rect.top+72, rect.Width(), rect.Height(), TRUE);
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)
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.