пишу, честно говоря компонент наподобие окна. размеры этого окна можно изменять мышкой. Вот я и обнаружил, что если левую границу окна двигать влево, то справа появляется рябь.
Вернёмся к реализации: если левая граница окна двигается влево, то свойство Left становится меньше, Width становится больше. Изменение свойств компонента - вещь медленная, т.к. при каждом изменении такого свойства вызывается метод SetBounds.
Для быстрого изменения размеров, чего не делал:
1) SetBounds(tmp_left,tmp_top,tmp_width,tmp_height);
2) SetWindowPos(Handle, 0, tmp_left,tmp_top,tmp_width,tmp_height, 0);
3) MoveWindow(Handle, tmp_left,tmp_top,tmp_width,tmp_height, true);
4) SetWindowPlacement(Handle, @WindowPlacement);
<-- результат один и тот же. Такое впечатление, что сначала у окна изменяется свойство Left, окно отрисовывается, потом изменяется Width, окно перерисовывается; поэтому и появляется рябь.
Тем не менее вызвав
MoveWindow(Handle, tmp_left,tmp_top,tmp_width,tmp_height, FALSE);
я получил примерно то, что я хочу. Окно перерисовывается очень быстро и правильно. Огромный Минус состоит в следующем: при перемещении левой границы вправо, слева остаётся ореол от моего окна, причём не только на окне-родителе, но и на других окнах.
Подскажите пожалуйста, что мне сделать? Может какими-нибудь InvalidateRect-ами .......