Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > изменение размеров контрола по размеру диалога...


Автор: tonchitos 24.4.2008, 13:50
я меняю размеры дерева, подгоняю под размерчик формы...


в оOnInitialUpdate
я делаю


Код

    CRect lpRect;
    CWnd* pWnd;
    pWnd =this->GetDlgItem(IDC_TREE1);
    this->GetClientRect(lpRect);
    pWnd->MoveWindow(lpRect.left,lpRect.top,lpRect.Width(),lpRect.Height());



но вот незадача...при ресайзе такая [censored 6] фигня получается....

все как то сворачивается...


я так понрмаю че то надо с перерисковкой похимичить, да?

Автор: Earnest 24.4.2008, 17:13
Во первых, лучше это жедать не на OnInitialUpdate, а на OnSize - чтобы работало при любом ресайзе.
Во-вторых, нужно проверять, что клиентская область не 0 - окно обычно создается нулевого размера и уже под самый занавес резайзится до нормального размера - т.е. приходит несколько OnSize, из них нужно обрабатывать только те, где cx и cy !=0.

Автор: Dreamer_0x01 25.4.2008, 10:33
А почему MoveWindow, а не SetWindowPos ?

Автор: Earnest 25.4.2008, 14:08
В данном случае все равно, а MoveWindow проще - меньше букв.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)