Описание функций поддержки окон
В табл. 4.1 даны общие сведения о функциях поддержки окон. За таблицей следуют подробные описания функций.
Таблица 4. 1. Общиесведенияофункциях поддержкиокон |
|||||||||||||||
Функция |
Назначение |
||||||||||||||
AdjustWindowRect |
Вычисляет размеры прямоугольного окна, способного вместить клиентскую область заданного размера |
||||||||||||||
AdjustWindowRectEx |
Вычисляет размеры окна с расширенным стилем и заданным размером клиентской области |
||||||||||||||
AltowSetForegroundWindow |
Разрешает процессу установить окно переднего плана с использованием функции SetForegroundWindow |
||||||||||||||
AnimateWindow |
Производит специальные эффекты при показе и скрытии окон |
||||||||||||||
BeginDeferWindowPos |
Начинает быстрое перемещение окон на экране |
||||||||||||||
BringWindowToTop |
Активизирует окно и переносит его в верхнее положение, если оно находится позади каких-либо других окон |
||||||||||||||
ChildWindowFromPoint |
Определяет дочернее окно родительского окна из данной точки |
||||||||||||||
ChildWindowFromPointEx |
Определяет дочернее окно родительского окна из данной точки, имея возможность игнорировать невидимые, запрещенные или прозрачные дочерние окна |
||||||||||||||
Close Window |
Сворачивает окно |
||||||||||||||
DeferWindowPos |
Перемещает окно с использованием быстрого процесса перемещения |
||||||||||||||
EnableWindow |
Разрешает или запрещает окну принимать ввод от мыши и клавиатуры |
||||||||||||||
EndDeferWindowPos |
Завершает быстрое перемещение окон на экране |
||||||||||||||
EnumChildWindows |
Вызывает функцию перечисления для дочерних окон родительского окна |
||||||||||||||
EnumProps |
Вызывает функцию перечисления для свойств в списке свойств окна |
||||||||||||||
EnumPropsEx |
Вызывает функцию перечисления с пользовательскими данными для свойств в списке свойств окна |
||||||||||||||
EnumThreadWindows |
Вызывает функцию перечисления для окон, связанных с нитью |
||||||||||||||
Enum Windows |
Вызывает функцию перечисления для окон верхнего уровня, работающих в системе |
||||||||||||||
FindWindow |
Находит окно верхнего уровня и выбирает дескриптор окна |
||||||||||||||
FindWindowEx |
Находит окно по имени окна и имени класса |
||||||||||||||
Flash Window |
Периодически высвечивает полосу заголовка окна или заставляет мерцать пиктограмму окна, если оно свернуто |
||||||||||||||
Flash WindowEx |
Расширенная версия FlashWindow |
||||||||||||||
GetActiveWindow |
Выбирает дескриптор окна, принадлежащий окну, которое является в настоящее время активным |
||||||||||||||
GetAltTablnfo |
Выбирает информацию для окна переключения между приложениями (Alt+Tab) |
||||||||||||||
GetAncestor |
Выбирает окно предка окна |
||||||||||||||
GetClasslnfo |
Выбирает информацию о классе окна |
||||||||||||||
GetClasslnfoEx |
Выбирает расширенную информацию о классе окна |
||||||||||||||
Функция |
Назначение |
||||||||||||||
GetClassLong |
Выбирает длинное значение из структуры класса окна , • |
||||||||||||||
GetClassLongPtr |
Выбирает значение указателя из структуры класса окна |
||||||||||||||
GetClassName |
Выбирает имя класса для окна |
||||||||||||||
GetClassWord |
Выбирает значение слова из структуры класса окна |
||||||||||||||
GetClientRect |
Выбирает размер клиентской области окна |
||||||||||||||
GefDesktopWindow |
Выбирает дескриптор окна рабочего стола |
||||||||||||||
GetFocus |
Выбирает дескриптор окна для окна, которое имеет фокус ввода |
||||||||||||||
GetForegroundWindow |
Выбирает дескриптор для окна, с которым в настоящее время работает пользователь |
||||||||||||||
GetLastActivePopup |
Выбирает дескриптор для всплывающего окна, которое было активно последним |
||||||||||||||
GetNextWindow |
Находит следующие родительские или дочерние окна |
||||||||||||||
GetParent |
Выбирает дескриптор родительского окна дочернего окна |
||||||||||||||
GetProp |
Выбирает элемент данных свойств, связанный с окном |
||||||||||||||
GetTffleBarlnfo |
Выбирает информацию об области заголовка окна |
||||||||||||||
GetTopWindow |
Определяет дочернее окно, которое находится над другими дочерними окнами |
||||||||||||||
GetWindow |
Выбирает дескриптор окна |
||||||||||||||
GetWindowlnfo |
Выбирает информацию об окне |
||||||||||||||
GetWindowLong |
Выбирает длинное значение из данных окна |
||||||||||||||
GetWindowLongPtr |
Выбирает значение указателя из данных окна |
||||||||||||||
GetWindowModuleFileName |
Выбирает полный путь и имя файла модуля, связанного с окном |
||||||||||||||
GetWindowPlacement |
Выбирает информацию о позиции окна |
||||||||||||||
GetWindowRed |
Выбирает информацию о размерах окна |
||||||||||||||
GetWindowTexf |
Выбирает строку заголовка окна |
||||||||||||||
GetWindowTextLength |
Выбирает длину строки заголовка окна |
||||||||||||||
GetWindowThreadProcessId |
Выбирает идентификатор нити, которая создала окно |
||||||||||||||
GetWindowWord |
Выбирает значение слова из дополнительных данных окна |
||||||||||||||
IsChild |
Определяет, является ли окно дочерним по отношению к данному родительскому окну |
||||||||||||||
klconic |
Проверяет, свернуто ли окно |
||||||||||||||
IsWindow |
Проверяет, указывает ли дескриптор на допустимое окно |
||||||||||||||
IsWindowEnabled |
Проверяет, разрешено или запрещено окно |
||||||||||||||
IsWindowUnicode |
Проверяет, имеется ли в окне встроенная поддержка Unicode |
||||||||||||||
IsWindowVisible |
Проверяет, было ли окно сделано видимым |
||||||||||||||
IsZoomed |
Проверяет, развернуто ли окно |
||||||||||||||
LockSetForegroundWindow |
Запрещает вызов функции SefForegroundWindow |
||||||||||||||
n »*«• •П•M. f-1 |
|||||||||||||||
Функиия |
Назначение |
||||||||||||||
MoveWindow |
Перемещает и изменяет размеры окна |
||||||||||||||
Openlcon |
Восстанавливает свернутое окно к его предыдущим размерам и позиции |
||||||||||||||
RealChildWindowFromPoint |
Выбирает дочернее окно из указанной точки |
||||||||||||||
RealGetWindowClass |
Выбирает строку, которая указывает тип окна |
||||||||||||||
RemoveProp |
Удаляет элемент данных свойств, связанный с окном |
||||||||||||||
SetActiveWindow |
Делает окно активным |
||||||||||||||
SetClassLongPtr |
Изменяет одно из значений указателя класса окна |
||||||||||||||
SetClassWord |
Изменяет значение слова в дополнительных данных класса окна |
||||||||||||||
SetFocus |
Придает окну фокус ввода |
||||||||||||||
SetForegroundWindow |
Делает окно окном переднего плана |
||||||||||||||
SefParent |
Изменяет родительское окно дочернего окна |
||||||||||||||
SetProp |
Связывает элемент данных свойств с окном |
||||||||||||||
SetWindowLongPtr |
Изменяет значение указателя, связанное с окном |
||||||||||||||
SetWindowPlacement |
Изменяет расположение окна |
||||||||||||||
SetWindowPos |
Изменяет одновременно размеры, позицию и расположение окна относительно других окон |
||||||||||||||
SetWindowText |
Изменяет заголовок окна |
||||||||||||||
SetWindowWord |
Изменяет значение слова, связанного с окном |
||||||||||||||
ShowOwnedPopups |
Показывает или скрывает все всплывающие окна, связанные с родительским окном |
||||||||||||||
ShowWmdow |
Отображает, скрывает или изменяет состояние показа окон |
||||||||||||||
ShowWindowAsync |
Отображает, скрывает или изменяет состояние показа окон, созданных другими нитями |
||||||||||||||
UpdateLayeredWindow |
Обновляет позицию, размеры, форму, содержание и полупрозрачность многослойного окна |
||||||||||||||
WindowFromPoint |
Находит окно, которое располагается в данной точке на экране |
||||||||||||||
AdjustWindowRect • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Функция AdjustWindowRect рассчитывает размеры ограничительного прямоугольника, исходя из размеров клиентской области, заданных параметром IpRect. Размеры ограничительного прямоугольника определяются с учетом размеров рамки, полосы заголовка, строки меню и клиентской области. Как правило, функция AdjustWindowRect используется с функцией CreateWindow для создания окна с известным размером клиентской области. |
||||||||||||||
Синтаксис |
BOOL AdjustWindowRect( LPRECT IpRect, DWORD dwStyle, BOOL bMenu ) |
||||||||||||||
Параметры IpRect |
LPRECT. Указатель на структуру RECT, содержащую координаты клиентской области для окна, которое должно быть создано. Координаты будут гугкпппр.к'типгтяны с. vwp.tom пячмр.ппи окня |
||||||||||||||
dwStyle |
DWORD. Стили окна, которые будут использоваться для создания окна. Перечень доступных стилей окна приведен в табл. 3.4 главы 3. |
||||||||||||||
ЬМепи |
BOOL. Устанавливается в TRUE, если прямоугольник должен включать пространство для меню; в ином случае устанавливается в FALSE. |
||||||||||||||
Возвращаемое значение |
BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
CreateWindow, AdjustWindowRectEx |
||||||||||||||
Пример |
В следующем примере показано, как создать главное окно приложения с конкретными размерами клиентской области. Функция AdjustWindowRect корректирует значения структуры RECT таким образом, чтобы в ограничительном прямоугольнике могли разместиться область заголовка, меню и рамки окна без изменения расположения клиентской области. |
||||||||||||||
См. /local-sources/chapOt/04-01. txt |
|||||||||||||||
AdjustWindowRectEx • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Функция AdjustWindowRectEx выполняет те же задачи, что и функция AdjustWindowRect, за исключением того, что в ней имеется параметр для расширенного стиля окна. Как правило, эта функция используется с функцией CreateWindowEx. |
||||||||||||||
Синтаксис |
BOOL AdjustWindowRectEx( LPRECT IpRect, DWORD dwStyle, BOOL ЬМепи, DWORD dwExStyle ) |
||||||||||||||
Параметры |
|||||||||||||||
IpRect |
LPRECT. Указатель на структуру RECT, содержащую координаты клиентской области создаваемого окна. Координаты будут откорректированы с учетом размеров окна. |
||||||||||||||
dwStyle |
DWORD. Стили, которые будут использоваться для создания окна. Перечень доступных стилей окна приведен в табл. 3.4 главы 3. |
||||||||||||||
ЬМепи |
BOOL. Устанавливается в TRUE, если прямоугольник должен включать пространство для меню; в ином случае устанавливается в FALSE. |
||||||||||||||
dwExStyle |
DWORD. Расширенный стиль, который будет использоваться для создания окна. Перечень доступных расширенных стилей окна приведен в табл. 3.4 главы 3. |
||||||||||||||
Возвращаемое значение |
BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
CreateWindowEx, AdjustWindowRect |
||||||||||||||
Пример |
В примере для функции AdjustWindowRect изменен следующий фрагмент кода, который позволяет создать главное окно с небольшим заголовком. |
||||||||||||||
См. /local -sources/chap04/04-02. txt |
|||||||||||||||
AllowSetForegroundWindow • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Эта функция позволяет указанному процессу установить окно переднего процесс к этому времени уже должен быть способен установить окно переднего плана. Операционная система накладывает ограничения на то, какой процесс может установить окно переднего плана. Процесс может установить окно переднего плана, только если одно из следующих условий является истинным: * процесс является процессом переднего плана; 4 процесс был запущен процессом переднего плана; Ф процесс принимал последнее событие ввода; * нет иного процесса переднего плана; * происходит отладка процесса переднего плана; 4 режим переднего плана не блокирован (см. функцию LockSetForegroundWindow) ; * истек тайм-аут блокировки режима переднего плана (см. параметр SPI_GETFOREGROUNDLOCKTIMEOUT в описании функции SystemParametersInfo); * ни одно меню не является активным (только Windows 2000). Процесс, который может установить окно переднего плана, может также разрешить это сделать другому процессу, вызвав функцию AllowSetForegroundWindow. Поскольку эта функция не реализована в Windows 98, в этой системе процессы должны взаимодействовать между собой, чтобы иметь возможность управлять окном переднего плана. |
||||||||||||||
Синтаксис |
BOOL AllowSetForegroundWindow( DWORD dwProcessId ) |
||||||||||||||
Параметры |
|||||||||||||||
dwProcessId |
DWORD. Идентификатор процесса, которому должно быть разрешено установить окно переднего плана. Если в качестве этого параметра применяется значение ASFW_ANY, всем процессам будет разрешено установить окно переднего плана. |
||||||||||||||
Возвращаемое значение |
BOOL. Если функция выполнена успешно, возвращаемое значение отлично от нуля; в ином случае возвращаемое значение равно нулю. Функция не будет выполнена, если вызывающий процесс не может установить окно переднего плана. Для выборки расширенной информации об ошибках применяется функция GetLastError. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
SetForegroundWindow |
||||||||||||||
AnimateWindow • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Функция AnimateWindow создает специальные эффекты при показе или скрытии окон. Эта функция позволяет создавать специальные эффекты трех типов: смена изображения, смена слайдов и переход с альфа-микшированием. Можно объединять флажки AW_HOR_POSITIVE или AW_HOR_NEGATIVE с AW_VER_POSITIVE или AW_VER_NEGATIVE |
||||||||||||||
Синтаксис |
BOOLAnimateWindow( HWND hWhd, DWORD dwTime, DWORD dwFlags) |
||||||||||||||
Параметры |
|||||||||||||||
hWnd |
HWND. Дескриптор окна, в котором выполняется анимация. Это окно должно принадлежать вызывающей нити. |
||||||||||||||
dwTime |
DWORD. Время в миллисекундах, которое требуется для воспроизведения анимации. Как правило, для воспроизведения анимации требуется 200 миллисекунд. |
||||||||||||||
dwFlags |
DWORD. Тип воспроизводимой анимации. Он может представлять собой одно или несколько значений, перечисленных в табл. 4.2 |
||||||||||||||
Таблице 4.Я. ФлажкиAnimateWindow |
|||||||||||||||
Флажок |
Описание |
||||||||||||||
AW_SLIDE |
Использовать слайдовую анимацию. По умолчанию используется анимация со сменой изображения при прохождении курсора. Этот флажок игнорируется при использовании с AW_CENTER. |
||||||||||||||
AW_ACTIVATE |
Активизировать окно. Не используется с AW_HIDE. |
||||||||||||||
AW_BLEND |
Использовать эффект перехода. Этот флажок может применяться, только если hWnd—окно верхнего уровня. |
||||||||||||||
AW_HIDE |
Скрыть окно. По умолчанию окно показано. |
||||||||||||||
AW_CENTER |
Окно свертывается внутрь, если применяется флажок AW HIDE; в ином случае окно развертывается наружу. |
||||||||||||||
AW_HOR_POSITIVE |
Выполнить анимацию окна слева направо. Этот флажок игнорируется при использовании с AW_CENTER или AW_BLEND. |
||||||||||||||
AW_HOR_NEGATIVE |
Выполнить анимацию окна справа налево. Этот флажок игнорируется при использовании с AW_CENTER или AW_BLEND. |
||||||||||||||
AW_VER_POSITIVE |
Выполнить анимацию окна сверху вниз. Этот флажок игнорируется при использовании с AW_CENTER или AW_BLEND. |
||||||||||||||
AW_VER_NEGATIVE |
Выполнить анимацию окна снизу вверх. Этот флажок игнорируется при использовании с AW_CENTER или AW_BLEND. |
||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращает ненулевое значение; в ином случае возвращаемое значение равно нулю. Эта функция не будет выполнена, если используется область окна, окно уже отображено и делается попытка его показать или окно уже скрыто и делается попытка его скрыть. Для выборки расширенной информации об ошибках применяется функция GetLastError. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
BeginDeferWindowPos • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Это — первая функция, вызываемая приложением в ряде функций BeginDeferWindowPos, DeferWindowPos и EndDeferWindowPos для перемещения одновременно одного или нескольких окон. Экран обновляется сразу после вызова функции EndDeferWindowPos. Эта функция позволяет быстро перемещать окна, затрачивая минимальное время на обновление внешнего вида экоана. Она очень полезна, когда нужно одновременно откорректировать положение большого числа окон. Если в каком-либо из окон установлен флажок SWP_HIDEWINDOW или SWP_SHOWWINDOW, положение окон не меняется. |
||||||||||||||
Синтаксис |
HDWP BeginDeferWindowPos( int n Windows ) |
||||||||||||||
Параметры |
|||||||||||||||
пWindows |
int. Начальное число окон, для которого распределена информация в структуре с описанием позиций. Функция DeferWindowPos увеличивает размер этой структуры в случае необходимости. |
||||||||||||||
Возвращаемое значение |
HDWP. Если функция выполняется успешно, возвращаемым значением является дескриптор структуры с описанием позиций нескольких окон, которая применялась в вызовах функций DeferWindowPos и EndDefer-WindowPos. В случае неудачного выполнения возвращаемым значением является NULL. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
DeferWindowPos, EndDeferWindowPos, Move Window |
||||||||||||||
Соответствующие сообщения |
|||||||||||||||
WM_MOVE, WM_SIZE |
|||||||||||||||
Пример |
См. пример для функции DeferWindowPos. |
||||||||||||||
BringWindowToTop • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Функция BringWindowToTop переводит окно в верхнее положение и накладывает его на другие перекрываемые окна на экране. Окно активизируется, если это всплывающее окно или окно верхнего уровня. Функция BringWindowToTop чаще всего применяется для размещения всплывающих окон перед всеми остальными окнами и их активизации для ввода данных пользователем. |
||||||||||||||
Синтаксис |
BOOL BringWindowToTop( HWND hwnd ) |
||||||||||||||
Параметры |
|||||||||||||||
hwnd |
HWND. Дескриптор окна, которое должно быть переведено в верхнее положение. |
||||||||||||||
Возвращаемое значение |
BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
SetFocus, IsWindowVisible, SetActiveWindow, SetForegroundWindow, EnableWindow |
||||||||||||||
Соответствующие сообщения |
|||||||||||||||
WM_SETFOCUS, WM_ENABLE |
|||||||||||||||
Пример |
В следующем примере показана функция WndProc приложения, которая создает два перекрывающихся элемента управления редактированием. При выборе опции меню Test! второй элемент управления редактированием перемещается в верхнюю позицию окна. |
||||||||||||||
См. /Iocal-mources/chap04/04-03 . txt |
|||||||||||||||
ChildWindowFromPoint * Windows 98 * Windows 2000 |
|||||||||||||||
Описание |
Функция ChildWindowFromPoint возвращает дескриптор дочернего окна, которое содержит заданную точку относительно клиентской области родительского окна. Эта функция чаще всего применяется для обработки сообщений \VM_MOUSEMOVE, \VM_LBUTTONDOWN и \VM_RBUTTONDOWN и для определения окна, над которым находился курсор мыши при возникновении сообщений. |
||||||||||||||
Синтаксис |
HWND ChildWindowFromPoint( HWND hwndParent, POINT pt ) |
||||||||||||||
Параметры |
|||||||||||||||
hwndParent |
HWND. Дескриптор родительского окна. |
||||||||||||||
Pt |
POINT. Структура POINT, содержащая клиентские координаты точки, которая должна быть проверена. |
||||||||||||||
Возвращаемое значение |
HWND. В случае успешного выполнения функция возвращает дескриптор дочернего окна, которое содержит эту точку, даже если оно скрыто или запрещено. Если точка находится за пределами границ родительского окна, возвращаемое значение — NULL. Если точка находится в пределах окна, но не в дочернем окне, возвращаемое значение — дескриптор родительского окна. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
ChildWindowFromPointEx, WindowFrom Point |
||||||||||||||
Соответствующие сообщения |
|||||||||||||||
WMJVTOUSEMOVE, WM_LBUTTONDOWN, WM_RBUTTONDOWN |
|||||||||||||||
Пример |
В следующем примере показана часть функции WndProc приложения, ко-•орая создает статический дочерний элемент управления. При нажатии левой кнопки мыши приложение проверяет, находится ли курсор мыши над статическим элементом управления или над клиентской областью главного окна. |
||||||||||||||
См. /local -sources/chap04/04-04. txt |
|||||||||||||||
ChildWindowFromPointEx • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Эта функция аналогична функции ChildWindowFromPoint, за исключением того, что при определении дочернего окна можно пропустить запрещенные, прозрачные и невидимые дочерние окна. |
||||||||||||||
Синтаксис |
HWND ChildWindowFromPointEx( HWND hwndParent, POINT pt, UINT uFlags ) |
||||||||||||||
Параметры |
|||||||||||||||
hwndParent |
HWND. Дескриптор родительского окнг |
||||||||||||||
Pt |
POINT. Структура POINT, содержащая клиентские координаты проверяемой точки. |
||||||||||||||
ufJags |
UINT. Определяет, какие дочерние окна должны быть пропущены. Параметр может представлять собой сочетание значений, перечисленных в табл. 4.3, которые объединены с помощью двоичного оператора OR (|). |
||||||||||||||
Таблица 4.3. ФлажкиChildWindowFromPointEx |
|||||||||||||||
Значение |
Описание |
||||||||||||||
CWP_ALL |
Рассмотреть все дочерние окна. |
||||||||||||||
CWP_SKIPDISABLED |
Пропустить запрещенные дочерние окна. |
||||||||||||||
CWP_SKIPINVISIBLE |
Пропустить невидимые дочерние окна. |
||||||||||||||
CWP_SKIPTRANSPARENT |
Пропустить прозрачные дочерние окна. |
||||||||||||||
Возвращаемое значение |
HWND. Если функция выполнена успешно, возвращается дескриптор дочернего окна, который содержит точку и отвечает критериям, установленным в параметре uFlags. Если точка находится в пределах родительского окна, но не в пределах какого-либо дочернего окна, соответствующего критериям, возвращаемое значение — дескриптор родительского окна. Если точка находится за пределами всех окон, возвращаемое значение — NULL. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
ChildWindowFromPoint, WindowFromPoint |
||||||||||||||
Пример |
В следующем фрагменте кода показано, как изменить пример, приведенный для функции ChildWindowFromPoint, и применить функцию ChildWindowFromPointEx, которая позволяет игнорировать запрещенные элементы управления при проверке того, где произошел щелчок мыши. |
||||||||||||||
См. /Iocal-sources/chap04/04-05.txt |
|||||||||||||||
CloseWindow • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
Функция CloseWindow свертывает указанное окно и отображает пиктограмму окна, которая была зарегистрирована с классом окна. Если класс окна не имеет пиктограммы, отображается пустая клиентская область, и окно получает сообщение WM_PAINT, чтобы иметь возможность вывести пиктограмму. Для свертывания всего приложения или дочернего окна, такого как окно MDI (multiple-document interface — многодокументный интерфейс), можно использовать главное окно приложения. |
||||||||||||||
Синтаксис |
BOOL CloseWindow( HWND hwnd ) |
||||||||||||||
Параметры |
|||||||||||||||
hwnd |
HWND. Идентифицирует свертываемое окно. |
||||||||||||||
Возвращаемое значение |
BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
Islconic, IsWindowVisible, IsZoomed |
||||||||||||||
Соответствующие сообщения |
|||||||||||||||
WM_SIZE, WM_PAINT |
|||||||||||||||
Пример |
В следующем примере функция CloseWindow сворачивает приложение при выборе опции меню Test!. |
||||||||||||||
См. /local -sources/chap04/04-06. txt |
|||||||||||||||
DeferWindowPos • Windows 98 • Windows 2000 |
|||||||||||||||
Описание |
DeferWindowPos — вторая функция в ряде функций BeginDeferWindowPos, DeferWindowPos и EndDeferWindowPos. Функция DeferWindowPos устанавливает новую информацию о позиции каждого окна, которое должно быть перемещено. Функция DeferWindowPos может применяться для быстрого перемещения одного или нескольких окон с обновлением экрана только один раз. |
||||||||||||||
Синтаксис |
HDWP DeferWindowPos( HDWP hdwp, HWND hwnd, HWND kwndlnsertAfter, int jc, int y, int ex, int cy, UINT dwFlags ) |
||||||||||||||
Параметры |
|||||||||||||||
hdwp |
HDWP. Дескриптор структуры с описанием позиций нескольких окон, которая была создана с помощью функции BeginDeferWindowPos или возвращена из предыдущего вызова функции DeferWindowPos. |
||||||||||||||
hwnd |
HWND. Дескриптор перемещаемого окна. |
||||||||||||||
hwndlnsertAfter |
HWND. Дескриптор окна, которое предшествует данному окну в структуре hwnd. Вместо дескриптора окна можно использовать одно из значений, перечисленных в табл. 4.4. Этот параметр игнорируется, если в параметре dwFlagsустановлено значение SWP_NOZORDER. |
||||||||||||||
Таблица 4.4. ЗначенияпараметраhwndlnsertAfter функцииDeferWindowPos |
|||||||||||||||
Значение |
Описание |
||||||||||||||
HWND_BOTTOM |
Переместить окно в нижнее положение в стеке дочерних окон. |
||||||||||||||
HWND_NOTOPMOST |
Переместить окно в положение ниже всех окон переднего плана. Это положение находится над всеми окнами, отличными от окон переднего плана. |
||||||||||||||
HWNDJTOP |
Переместить окно в верхнее положение в стеке дочерних окон. |
||||||||||||||
HWND_TOPMOST |
Переместить окно в положение выше всех окон переднего плана. Если это окно станет не активным, оно все равно сохранит самое верхнее положение. |
||||||||||||||
Таблица 4.5. ЗначенияпараметраdwFlags функцииDeferWindowPos |
|||||||||||||||
Значение |
Описание |
||||||||||||||
SWP_DRAWFRAME |
Выводить вокруг окна рамку, определенную в классе окна. |
||||||||||||||
SWP_FRAMECHANGED |
Отправлять окну сообщение WM_NCCALCSIZE, даже если размер окна не изменился. |
||||||||||||||
SWP_HIDEWINDOW |
Скрыть окно. |
||||||||||||||
SWP NOACTIVATE |
Не активизировать окно. |
||||||||||||||
К |
int. Новая позиция х левого верхнего угла окна. |
||||||||||||||
У |
int. Новая позиция у левого верхнего угла окна. |
||||||||||||||
сх |
int. Новая ширина окна в пикселях. |
||||||||||||||
су |
int. Новая высота окна в пикселях. |
||||||||||||||
dw flags |
UINT. Влияет на перемещение и позиционирование окна. Этот параметр может состоять из одного или нескольких значений, перечисленных в табл. 4.5, которые объединены с помощью двоичного оператора OR (|). |
||||||||||||||
Значение |
Описание |
||||||||||||||
SWPJ40COPYIIT5 |
Отбрасывать все содержимое клиентской области. По умолчанию действительное содержимое клиентской области сохраняется и вновь копируется в клиентскую область после изменения размеров или позиции окна. |
||||||||||||||
SWP_NOMOVE |
Игнорировать параметры жиу. Будут только изменены размеры окна. |
||||||||||||||
SWPJ4OOWNERZORDER |
Сохранить позицию окна владельца в z-порядке. |
||||||||||||||
SWP_NOREDRAW |
Не вызывать перерисовку после выполнения перемещения. Приложение должно явно указать окно в качестве недействительного или перерисовать любую его часть, которая должна быть выведена на экран. |
||||||||||||||
SWP_NOREPOSITION |
То же, что и флажок SWP_NOOWNERZORDER . |
||||||||||||||
SWP_NOSENDCHANGING |
Исключить возможность получения окном сообщения WM_WINDOWPOSCHANGING. |
||||||||||||||
SWP_NOSIZE |
Игнорировать параметры сх и су. Окно будет только перемещено. |
||||||||||||||
SWP_NOZORDER |
Игнорировать параметр hwndlnsert Alter . |
||||||||||||||
SWP_SHOWWINDOW |
Отобразить окно. |
||||||||||||||
Возвращаемое значение |
HDWP. Дескриптор обновленной структуры с описанием позиций нескольких окон. Возвращаемый дескриптор может отличаться от переданного в функцию и должен применяться в последующих вызовах функции DeferWindowPos и в конечном итоге — EndDeferWindowPos. Если функция не будет выполнена успешно, возвращаемое значение — NULL. |
||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||
См. также |
BeginDeferWindowPos, EndDeferWindowPos, MoveWindow |
||||||||||||||
Соответствукщие сообщения |
|||||||||||||||
WM_MOVE, WM_SIZE |
|||||||||||||||
Пример |
В следующем примере (рис. 4.1) показана часть функции WndProc для приложения, которое создает статический текстовый элемент управления и элемент управления редактированием в качестве дочерних окон главного окна. Затем при изменении размеров главного окна изменяются размеры этих элементов управления с помощью функций BeginDeferWindowPos, DeferWindowPos и EndDeferWindowPos. Ширина статического элемента управления поддерживается такой же, как ширина главного окна. Ширина и высота элемента управления редактированием изменяются в соответствии с шириной и высотой главного окна за вычетом высоты статического элемента управления. |
||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.