Здравствуйте. Убил весь вечер, но так и не понял почему. В приложении - мини прога с исходником. Если быстро ресайзить окно, то кнопки в окне перестают отображаться правильно. Перемещаю кнопки функцией Код (Text): INVOKE SetWindowPos, Handle, 0, [EDI].left, [EDI].top, [EDI].right, [EDI].bottom, SWP_NOZORDER До изменения размера: И вот что выходит:
Попробуй указать во флагах SWP_SHOWWINDOW. ИМХО лучше юзать вместо SetWindowPos MoveWindow. т.к. туда нужно передавать 6 параметров вместо 7 и к тому же последний параметр - repaint flag.
murder Тот же эффект. Понял почему это происходит. При изменении положения кнопок одна кнопка накрывает другую. Вот только почему, когда из-под "накрывшей" кнопки "вылазит" (становится на свое место) "накрытая", на ней не отрисовывается заново тот кусок, который будет накрыт? UpdateWindow не помогает. Перерисовывать каждый элемент целиком после изменения положения - тоже как-то не по-дзенски. А вот как перерисовать ту часть, которая так "испачкалась"? Куда копать? P.S. Сложно описал, но думаю, будет понятно.
slavanap картинок не видать. те непонятно. попробовал прогу запустить - ничего не налазит, но пачкает на кнопках. те перерисовку со стиранием по всему окну задавать надо. кста, вы уверены, что из приложеного исходника можно собрать приложеную прогу?
Попробуйте двигать кнопки после ресайза окна. Или передавайте SendMessage WM_ERASEBKGND для всех передвигаемых кнопок после их передвижения.