Функция SetWindowPos

Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
SetWindowPos располагает окно в новое местоположение на экране, устанавливая его координаты, вид, позицию относительно других окон
hwnd
Дескриптор окна для перемещения
hWndInsertAfter
Дескриптор окна, после которого окно hwdn находится в списке окон. Следующие флаги определяют позицию окна hwnd:
HWND_BOTTOM = 1
Внизу списка окон
HWND_NOTOPMOST = -2
Наверху списка окон, под самым верхним окном
HWND_TOP = 0
Поверх всех окон
HWND_TOPMOST = -1
Наверху списка окон
x
Координата x вернего левого угла окна
y
Координата y вернего левого угла окна
cx
Ширина окна
cy
Высота окна
wFlags
Флаги, определяющие вид окна:
SWP_DRAWFRAME = &H20
Рисует рамку окна,аналогично SWP_FRAMECHANGED
SWP_FRAMECHANGED = &H20
Рисует рамку окна
SWP_HIDEWINDOW = &H80
Скрывает окно с экрана
SWP_NOACTIVATE = &H10
Делает окно неактивным
SWP_NOCOPYBITS = &H100
Не обновляет рисунки на окне после перемещения
SWP_NOMOVE = &H2
Сохраняет координаты текущего окна(параметры x и y игнорируются)
SWP_NOSIZE = &H1
Сохраняет координаты текущего окна
SWP_NOREDRAW = &H8
Не перерисовывает содержимое окна
SWP_NOZORDER = &H4
Сохраняет текущее положение окна в списке других окон
SWP_SHOWWINDOW = &H40
Отображает окно, если оно скрыто

Пример

' Перемещаем окно формы Form1
' в верхний левый угол экрана и поверх всех окон
Dim flags As Long ' флаг для окна
Dim retval As Long ' возвращаемое значение

' Не изменяя размеры окна, показываем его в новом месте
flags = SWP_NOSIZE Or SWP_DRAWFRAME
' Перемещаем окно
retval = SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 1, 1, flags)

Смотри также

BringWindowToTop, GetWindowRect, MoveWindow

Категория

Окна