Здравствуй, Paladinm, Мы писали:
P>Например, при увеличении размеров формы вправо, во время самого процесса, панели еще не успевают перерисоваться, а контролы уже успевают.
P>Получается эффект, как будто контролы вылазят за границы формы.
P>Предполагаю, что во время изменения размеров окна, вместо одного просчета будущего расположения контролов, с учетом выравниваний и якорей, и одной их финальной отрисовкой, происходит многократная перериовка контролов при выравнивании.
Нашел не очень красивое решение (на этом же форуме...)
Размер окна я изменяю при помощи MoveWindow( ...)
Так вот, всем контролам, которые колбасятся делаем WM_SETREDRAW:
SendMessage( KolbasaCtrl.Handle, WM_SETREDRAW, 0, 0); // отмена перерисовки
MoveWindow( Handle, ...) // изменяем размеры окна
SendMessage( KolbasaCtrl.Handle, WM_SETREDRAW, 1, 0); // включение перерисовки
InvalidateRect( KolbasaCtrl.Handle, 0, false ); // рисуем контрол
— И все, после этого колбаса заканчивается.
Конечно, лучше бы в память все контролы отрисовывать...
Может кто-то знает как?