Операционная система Microsoft Windows 3.1 для программиста -том 3


Листинг 3.9. Файл winhook/winhook.cpp - часть 4


Для того чтобы сделать окно "непотопляемым", а заодно и изменить его размеры, мы вызываем функцию SetWindowPos , передав ей в качестве второго параметра константу HWND_TOPMOST:

SetWindowPos(hwnd, HWND_TOPMOST, rc.right - cxChar * 15, rc.bottom - cyChar * 3, cxChar * 10, cyChar * 2, 0);

Функция SetWindowPos позволяет изменить размеры и расположение окна относительно экрана и относительно других окон:

BOOL WINAPI SetWindowPos( HWND hwnd, // идентификатор окна HWND hwndInsertAfter, // расположение окна int x, // горизонтальное положение int y, // вертикальное положение int cx, // ширина int cy, // высота UINT fuFlags); // флаги расположения окна

Для параметра hwndInsertAfter, определяющего расположение окна относительно других окон, можно использовать следующие значения:

Значение Описание
HWND_BOTTOM Окно следует расположить под другими окнами
HWND_TOP Окно будет расположено над другими окнами
HWND_TOPMOST Окно следует расположить над всеми другими окнами, имеющими расположение HWND_TOPMOST
HWND_NOTOPMOST Окно будет расположено над всеми HWND_TOP-окнами, но под окном, имеющим расположение HWND_TOPMOST

Параметры x, y, cx и cy определяют, соответственно, горизонтальное и вертикальное расположение окна, его ширину и высоту.

Параметр fuFlags может принимать следующие значения:

Значение Описание
SWP_DRAWFRAME Следует нарисовать рамку, определенную в классе окна
SWP_HIDEWINDOW Окно будет скрыто
SWP_NOACTIVATE Окно не будет активизировано
SWP_NOMOVE Окно не будет перемещаться, при указании этого флага параметры x и y игнорируются
SWP_NOSIZE Окно не будет изменять свои размеры, параметры cx и cy игнорируются
SWP_NOREDRAW Не следует выполнять перерисовку окна. После перемещения приложение должно перерисовать окно самостоятельно
SWP_NOZORDER Не следует изменять расположение окна относительно других окон, параметр hwndInsertAfter игнорируется
SWP_SHOWWINDOW Отобразить окно

После перемещения и изменения расположения главного окна функция WinMain приложения WINHOOK отображает окно и запускает цикл обработки сообщений.




Начало  Назад  Вперед