BOOL MoveWindow(HWND hwnd

Функции перемещения окон

Всплывающее окно может содержать собственное меню; в дочерних окнах меню не бывает.

Координаты дочерних окон задаются относительно границ рабочей области родительского окна; координаты всплывающих окон задаются относительно границ экрана;

Дочерние окна могут перемещаться только в пределах родительского окна, в то время, как положение всплывающих окон не ограничено какими-либо границами;

Если в главном окне приложения одновременно порождены и всплывающие и дочерние окна, то всплывающие окна будут изображаться поверх дочерних;

Дочерние окна используют для создания органов управления. Определяемые системой классы органов управления (кнопки, полосы просмотра и т.д.) представляют собой дочерние окна. Базовый стиль дочерних окон описывается константой WS_CHILD или WS_CHILDWINDOW.

Стили окон

1) Перекрывающиеся окна чаще используют в качестве окон приложения. Базовый тип таких окон описывается константой WS_OVERLAPED или WS_OVERLAPEDWINDOW (окно имеет системное меню, кнопки восстановления размеров, закрытия и сворачивания окна).

Перекрывающееся окно может принадлежать другому окну (владельцу). Если окно-владелец сворачивается в пиктограмму, то подчинённые ему окна становятся невидимыми. При уничтожении окна автоматически уничтожаются подчинённые ему окна. Подчинённые окна всегда располагаются над поверхностью окна владельца.

2) Временные (всплывающие) окна обычно используют для вывода сообщений пользователю и остаются на экране непродолжительное время. Базовый стиль временного окна описывается константой WS_POPUP или WS_POPUPWINDOW. Для добавления к временному окну системного меню и заголовка стиль WS_POPUPWINDOW комбинируют со стилем WS_CAPTION (WS_POPUPWINDOW|WS_CAPTION). Во всём остальном временные окна – это специальный вид перекрывающихся окон.

Дочерние окна всегда имеют окно-родителя. Они «прилипают» к поверхности родителя, перемещаются с ним и не могут выйти за пределы родительского окна.


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


1) Для перемещения и изменения размеров окна hwnd используют функцию MoveWindow. Ей передают новые координаты окна. Функция MoveWindow объявлена следующим образом:

int x, // новая координата левого края окна

int y, // новая координата верхнего края окна

int Width, // новая ширина окна

int nHeight, // новая высота окна

BOOL bRepaint); // флажок перекрашивания окна

Если bRepaint=TRUE, немедленно после перемещения перерисовываются те части экрана, на которых отразилось перемещение окна. Иначе окно перерисовывает себя только после обработки всех поступивших к моменту перемещения сообщений. При успешном выполнении функция возвращает ненулевое значение, иначе – нуль.


2) Функция SetWindowPos изменяет координаты окна hwnd на экране и его расположение по отношению к другим окнам:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: