18 сент. 2010 г.

MoveWindow

Функция MoveWindow изменяет положение и размеры указанного окна. Для окна верхнего уровня положение и размеры относительны верхнего левого угла экрана. Для дочернего окна они относительны верхнего верхнего левого угла клиентской области родительского окна.
BOOL MoveWindow(
    HWND hWnd, // дескриптор окна
    int X,  // горизонтальное положение
    int Y,  // вертикальное положение
    int nWidth, // ширина
    int nHeight, // высота
    BOOL bRepaint  // флаг перерисовки
);
Параметры:
hWndОпределяет окно.
XОпределяет новое положение левой стороны окна.
YОпределяет новое положение верхней стороны окна.
nWidthОпределяет новую ширину окна.
nHeightОпределяет новую высоту окна.
bRepaintОпределяет, будет ли перерисовано окно. Если значение этого параметра равно TRUE, то окно получает сообщение WM_PAINT. Если значение параметра равно FALSE, перерисовывания окна не происходит. Это относится к клиентской области, неклиентской области (включая заголовок и полосы прокрутки) и любой части родительского окна, более не закрываемой дочерним окном из-за его перемещения. Если значение параметра равно FALSE, приложение должно само перерисовать части окна и родительского окна, требующие перерисовки.

Возвращаемые значения:
В случае успеха возвращается ненулевое значение.

В случае неудачи возвращается ноль.
Замечания:
Если значение параметра bRepaint равно TRUE, то Windows отправляет сообщение WM_PAINT оконной процедуре сразу после перемещеня окна (т.е., функция MoveWindow вызывает функцию UpdateWindow) Если значение параметра bRepaint равно FALSE, Windows помещает сообщение WM_PAINT в очередь сообщений, связанную с окном. Цикл сообщений обрабатывает сообщение WM_PAINT только после обработки всех остальных сообщений в очереди.

MoveWindow отправляет указанному окну сообщения WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED, WM_MOVE, WM_SIZE, и WM_NCCALCSIZE.
Смотрите также:
SetWindowPos, UpdateWindow, WM_GETMINMAXINFO, WM_PAINT