Win32 API. Функции окна

ОГЛАВЛЕНИЕ

Следующие функции используются для создания и управления окнами.


 

Функция AdjustWindowRect

РегулировкаПрямоугольникаОкна

Функция AdjustWindowRect вычисляет требуемый размер прямоугольника окна, основанного на желаемом пользователем размере прямоугольника. Прямоугольник окна может затем быть передан в функцию CreateWindowEx, чтобы создать окно, рабочая область которого- желаемого размера.

Синтаксис:

BOOL AdjustWindowRect
(
LPRECT lpRect, // указатель на структуру
// прямоугольника пользователя
DWORD dwStyle, // стиль окон
BOOL bMenu // флажок показа меню
);

Параметры

lpRect
Указатель на структуру RECT, которая содержит координаты верхнего левого и нижнего правого углов желательной рабочей области. Когда функция возвращает значение, структура содержит координаты верхнего левого и правого нижнего углов окна, которые устанавливают допустимые размеры желательной рабочей области.

dwStyle
Определяет стили окна, требуемый размер которого должен быть вычислен.

bMenu
Определяет, имеет ли окно меню.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение отличное от нуля. Если функция не выполнила задачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибке, вызовите GetLastError.

Замечания
Прямоугольник пользователя - самый маленький прямоугольник, который полностью включает рабочую область. Прямоугольник окна - самый маленький прямоугольник, который полностью включает окно. Функция AdjustWindowRect не добавляет дополнительного пространства, когда строка меню занимает две или большее количество строк.

Смотри также
AdjustWindowRectEx, CreateWindowEx, RECT

Размещение и совместимость AdjustWindowRect

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция AdjustWindowRectEx

(РегулировкаПрямоугольникаОкна)

Функция AdjustWindowRectEx вычисляет требуемый размер прямоугольника окна расширенного стиля, основанного на желаемом размере рабочей области окна. Прямоугольник окна может затем быть передан в функцию CreateWindowEx, чтобы создать окно, рабочая область которого желаемого размера.

Синтаксис:

BOOL AdjustWindowRect
(
LPRECT lpRect, // указатель на структуру
// рабочей области
DWORD dwStyle, // стиль окон
BOOL bMenu // флажок показа меню
DWORD dwExStyle // расширенный стиль
);

Параметры

lpRect
Указатель на структуру RECT, которая содержит координаты верхнего левого и правого нижнего углов желательной рабочей области. Когда функция возвращает значение, структура содержит координаты верхнего левого и правого нижнего углов окна, которые устанавливают допустимые размеры желательной рабочей области

dwStyle
Определяет стили окна, требуемый размер которого должен быть вычислен.

bMenu
Определяет, имеет ли окно меню.

dwExStyle
Определяет расширенный стиль окна, требуемый размер которого должен быть вычислен.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение нулевое. Чтобы получать расширенные данные об ошибке, вызовите GetLastError.

Замечания
Прямоугольник пользователя - самый маленький прямоугольник, который полностью включает рабочую область. Прямоугольник окна - самый маленький прямоугольник, который полностью включает окно. Функция AdjustWindowRect не добавляет дополнительное пространство, когда строка меню занимает две или большее количество строк.

Смотри также
AdjustWindowRect, CreateWindowEx, RECT

Размещение и совместимость AdjustWindowRect

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция ArrangeIconicWindows

(РасположениеВОпределенномПорядкеПиктограммОкон)

Функция ArrangeIconicWindows упорядочивает все свернутые (пиктограммы) дочерние окна определяемого родительского окна.

Синтаксис

UINT ArrangeIconicWindows
(
HWND hWnd // дескриптор родительского окна
);

Параметры
hWnd Идентифицирует родительское окно.

Возвращаемые значения
Если функция завершила свою работу успешно, возвращаемое значение является высотой одной строчки пиктограмм. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
Прикладная программа, которая поддерживает самостоятельно свернутые дочерние окна, может использовать функцию ArrangeIconicWindows, чтобы упорядочить значки в родительском окне. Эта функция может также упорядочивать значки на рабочем столе. Чтобы возвратить дескриптор окна в главное окно программы, используйте функцию GetDesktopWindow. Прикладная программа посылает сообщение WM_MDIICONARRANGE в рабочее окно интерфейса многодокументной среды (MDI), чтобы побудить рабочее окно упорядочить свернутые дочерние окна интерфейса многодокументной среды (MDI).

Смотри также
CloseWindow, GetDesktopWindow

Размещение и совместимость ArrangeIconicWindows

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется


Функция BeginDeferWindowPos

(НачалоЗадержкиПозиционирования Окна)

Функция BeginDeferWindowPos распределяет память для структуры многооконной установки и возвращает значение дескриптора структуры.

Синтаксис:

HDWP BeginDeferWindowPos
(
int nNumWindows // число окон
);

Параметры
nNumWindows Определяет начальное число окон, для которых сохраняется информация о расположении. Функция DeferWindowPos, в случае необходимости, увеличивает размер структуры.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение идентифицирует структуру многооконной установки. Если доступные ресурсы системы недостаточные, чтобы распределить структуру, возвращаемое значение ПУСТО (NULL).

Замечания
Структура многооконной установки - внутренняя структура; прикладная программа не может обращаться к ней непосредственно. Функция DeferWindowPos заполняет структуру многооконной установки информацией о расположении объекта для одного или большего количества окон, собирающихся быть перемещенными. Функция EndDeferWindowPos принимает дескриптор для этой структуры и снова устанавливает окна, используя информацию, сохраненную в структуре. Если какоелибо из окон в структуре многооконной установки имеет набор флажков SWP_HIDEWINDOW или SWP_SHOWWINDOW, ни одно из окон снова не устанавливается. Если Windows должен увеличить размер структуры многооконной установки за пределы начального размера, определенного параметром nNumWindows, но не может выделить достаточно памяти, чтобы выполнить это, Windows не выполняет задачу установленным порядком для всего окна (BeginDeferWindowPos, DeferWindowPos, и EndDeferWindowPos). Определяя необходимый максимальный размер, прикладная программа может обнаруживать и обрабатывать сбой в начале процесса.

Смотри также
DeferWindowPos, EndDeferWindowPos, SetWindowPos

Размещение и совместимость BeginDeferWindowPos

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция BringWindowToTop

(ПереводОкнаВВерх)

Функция BringWindowToTop переносит определенное окно в верхнюю часть Z-последовательности. Если окно - окно верхнего уровня, оно активизируется. Если окно - дочернее окно, родительское окно верхнего уровня, связанное с дочерним окном активизируется.

Синтаксис

BOOL BringWindowToTop
(
HWND hWnd // дескриптор окна
);

Парамертры

hWnd
Идентифицирует окно, которое переносится в верхнюю часть Z-последовательности.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение не ноль. Если функция не выполняет задачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Используйте функцию BringWindowToTop, чтобы открыть любое окно, которое частично или полностью затенено другими окнами. Вызов этой функции подобен вызову функции SetWindowPos, чтобы изменить позицию окна в Z-последовательности. BringWindowToTop не делает окно окном верхнего уровня. Если прикладная программа не в активном режиме и хочет быть в активном режиме, она должна вызвать функцию SetForegroundWindow.

Смотри также
SetWindowPos, SetActiveWindow, SetForegroundWindow

Размещение и совместимость BringWindowToTop

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция CascadeWindows

(ОкнаКаскадом) [Теперь поддерживается в Windows NT]

Функция CascadeWindows располагает каскадом определенные окна или дочерние окна определенного родительского окна.

Синтаксис

WORD WINAPI CascadeWindows
(
HWND hwndParent, // дескриптор родительского окна
UINT wHow, // типы окон, которые не упорядочиваются
CONST RECT *lpRect, // прямоугольник, в котором
// упорядочиваются окна
UINT cKids, // число окон для упорядочивания
const HWND FAR *lpKids // массив дескрипторов окна
);

Параметры

hwndParent
Идентифицирует родительское окно. Если этот параметр имеет значение ПУСТО (NULL), принимается окно рабочего стола.
wHow
Определяет флажок каскада. В настоящее время доступен единственный флажок, MDITILE_SKIPDISABLED, который предотвращает блокирование дочерних окон MDI (Многодокументального Интерфейса) от каскадирования.
lpRect
Указатель на структуру SMALL_RECT, которая определяет прямоугольную область, в экранных координатах, внутри которой помещены окна. Этот параметр может быть значением ПУСТО (NULL), когда используется рабочая область родительского окна.
cKids
Определяет число элементов в массиве, определенном параметром lpKids. Этот параметр игнорируется, если lpKids - ПУСТО (NULL). lpKids
Указатель на массив дескрипторов окон, которые идентифицируют упорядочиваемые окна. Если этот параметр - ПУСТО (NULL), дочерние окна размещаются в определенном родительском окне (или окне рабочего стола).

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - число упорядочиваемых окон. Если функция не выполняет задачу, возвращаемое значение нулевое.

Смотри также
SMALL_RECT

Размещение и совместимость CascadeWindows

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция ChildWindowFromPoint

(ДочернееОкноОтТочки) [Теперь поддерживается в Windows NT]

Функция ChildWindowFromPoint определяет, какие, если таковые вообще имеются, из дочерних окон, принадлежащих родительскому окну, содержат точку установки (фиксированную).

Синтаксис

HWND ChildWindowFromPoint
(
HWND hWndParent, // дескриптор родительского окна
POINT Point // структура с координатами точки
);

Параметры

hWndParent
Идентифицирует родительское окно.
Point
Определяет структуру POINT, которая устанавливает для проверки рабочие координаты точки.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор дочернего окна, которое содержит точку, даже если дочернее окно скрыто или заблокировано. Если точка находится за пределами родительского окна, возвращаемое значение - ПУСТО (NULL). Если точка - внутри родительского окна, а не внутри какого-либо дочернего окна, возвращаемое значение - дескриптор родительского окна.

Замечания
Windows поддерживает внутренний список, содержащий дескрипторы дочерних окон, связанных с родительским окном. Порядок дескрипторов в списке зависит от Z-последовательности дочерних окон. Если больше чем одно дочернее окно содержат фиксированную точку, Windows возвращает значение дескриптора первого окна в списке, которое содержит точку.

Смотри также
ChildWindowFromPointEx, POINT, WindowFromPoint

Размещение и совместимость ChildWindowFromPoint

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция ChildWindowFromPointEx

(ДочернееОкноОтТочкиРасширенная) [Теперь поддерживается в Windows NT]

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

Синтаксис

HWND ChildWindowFromPointEx
(
HWND hwndParent, // дескриптор родительского окна
POINT pt, // структура с координатами точки
UINT uFlags // флажки пропуска
);

Параметры

hwndParent
Идентифицирует родительское окно.
pt
Определяет структуру POINT, которая определяет для проверки рабочие координаты точки.
uFlags
Определяет, какие дочерние окна пропустить. Этот параметр может быть комбинацией следующих значений:

  • CWP_ALL - Не пропускать все дочерние окна.
  • CWP_SKIPINVISIBLE - Пропускать невидимые дочерние окна.
  • CWP_SKIPDISABLED - Пропускать блокированные дочерние окна .
  • CWP_SKIPTRANSPARENT - Пропускать прозрачные дочерние окна.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор первого дочернего окна, которое содержит точку и соответствует критериям, определенным в uFlags. Если точка - внутри родительского окна, а не внутри какого-либо дочернего окна, которое соответствует критериям, возвращаемое значение - дескриптор родительского окна. Если точка находится за пределами родительского окна или если функция не выполнила задачу, возвращаемое значение - ПУСТО (NULL).

Замечания
Windows поддерживает внутренний список, который содержит дескрипторы дочерних окон, связанных с родительским окном. Порядок дескрипторов в списке зависит от Z-последовательности дочерних окон. Если больше чем одно дочернее окно содержат фиксированную точку, Windows возвращает дескриптор первого окна в списке, который содержит точку и соответствует критериям, определенным uFlags.

Смотри также
ChildWindowFromPoint, POINT, WindowFromPoint

Размещение и совместимость ChildWindowFromPointEx

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция CloseWindow

(ЗакрытьОкно)

Функция CloseWindow свертывает (но не разрушает) определенное окно.

Синтаксис:

BOOL CloseWindow
(
HWND hWnd // дескриптор окна, которое свертывается
);

Параметры

hWnd
Идентифицирует окно, которое должно быть свернуто.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - не ноль. Если функция потерпела неудачу возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке вызовите функцию GetLastError.

Замечания
Окно свертывается, уменьшая свой размер до пиктограммы, и перемещается в область пиктограмм экрана. Windows отображает пиктограмму окна вместо окна и выводит заголовок окна ниже пиктограммы. Чтобы уничтожить окно, прикладная программа должна использовать функцию DestroyWindow.

Смотри также
ArrangeIconicWindows, DestroyWindow, IsIconic, OpenIcon

Размещение и совместимость CloseWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция CreateWindow

(СоздатьОкно)

Функция CreateWindow создает перекрывающее, выскакивающее или дочернее окно. Она определяет класс, заголовок, стиль окна и (необязательно) исходное положение и размер окна. Функция также определяет окно родителя или владельца, если таковые вообще имеются, и меню окна.

Синтаксис:

HWND CreateWindow
(
LPCTSTR lpClassName, // указатель на зарегистрированное имя класса
LPCTSTR lpWindowName, // указатель на имя окна
DWORD dwStyle, // стиль окна
int x, // горизонтальная позиция окна
int y, // вертикальная позиция окна
int nWidth, // ширина окна
int nHeight, // высота окна
HWND hWndParent, // дескриптор родительского или окна владельца
HMENU hMenu, // дескриптор меню или идентификатор дочернего окна
HANDLE hInstance, // дескриптор экземпляра приложения
LPVOID lpParam // указатель на данные создания окна
);

Параметры

lpClassName
Указывает на строку с нулевым символом в конце или - на целочисленный атом. Если этот параметр - атом, он должен быть общим атомом, созданным предыдущим обращением к функции GlobalAddAtom. Атом - 16-разрядное значение меньшее, чем 0xC000, должно быть в младшем слове lpClassName; старшее слово должно быть нулевое. Если lpClassName - строка, она определяет имя класса окна. Имя класса может быть любое имя, зарегистрированное функцией RegisterClass или любым из предопределенных имен класса элементов управления. Полный список, см. в следующем разделе Замечания.

lpWindowName
Указывает на строку с нулевым символом на конце, которая определяет имя окна.

dwStyle
Определяет стиль создаваемого окна. Этот параметр может быть комбинацией стилей окна и стилей панелей управления, перечисленных в ниже следующем разделе Замечания.

x
Определяет начальную горизонтальную позицию окна. Для перекрывающего или выскакивающего окна, параметр x - начальная x-координата левого верхнего угла окна, в экранных координатах. Для дочернего окна x - x-координата левого верхнего угла окна относительно левого верхнего угла рабочей области родительского окна. Если этот параметр установлен как CW_USEDEFAULT, Windows выбирает заданную по умолчанию позицию для левого верхнего угла окна и игнорирует параметр y. Параметр CW_USEDEFAULT допустим только для перекрывающих окон; если он определен для выскакивающего или дочернего окна, x и y параметры устанавливаются в нуль.

y
Определяет начальную вертикальную позицию окна. Для перекрывающего или выскакивающего окна, параметр y - начальная y-координата левого верхнего угла окна, в экранных координатах. Для дочернего окна, y - начальная y-координата левого верхнего угла дочернего окна относительно левого верхнего угла рабочей области родительского окна. Для окна со списком, y - начальная y-координата левого верхнего угла рабочей области окна со списком относительно левого верхнего угла рабочей области родительского окна. Если перекрывающее окно создано с установленным битом стиля WS_VISIBLE, а x параметр установлен как CW_USEDEFAULT, Windows игнорирует параметр y.

nWidth

Определяет ширину окна в единицах измерения для устройства. Для перекрывающих окон, nWidth является, или шириной окна в экранных координатах, или параметром CW_USEDEFAULT. Если nWidth - CW_USEDEFAULT, Windows выбирает заданную по умолчанию ширину и высоту для окна; заданная по умолчанию ширина простирается от начальной x-координаты до правого края экрана, а заданная по умолчанию высота простирается от начальной y-координаты до верхней части области пиктограмм. Значение CW_USEDEFAULT допустимо только для перекрывающих окон; если CW_USEDEFAULT определено для выскакивающего или дочернего окна, nWidth и nHeight устанавливаются в нуль.

nHeight
Определяет высоту окна в единицах измерения устройства. Для перекрывающих окон, nHeight - высота окна, в экранных координатах. Если параметр nWidth установлен как CW_USEDEFAULT, Windows игнорирует nHeight.

hWndParent
Идентифицирует окно родителя или владельца создаваемого окна. Правильный дескриптор окна должен быть выдан при создании дочернего окна или окна собственника. Дочернее окно ограничено рабочей областью его родительского окна. Находящееся в собственности окно - перекрывающее окно, разрушается тогда, когда разрушено или скрыто окно его владельца, когда его владелец свернут; оно всегда отображается на верхней части окна своего владельца. Несмотря на то, что этот параметр должен определять допустимый дескриптор, если параметр dwStyle включает в себя стиль WS_CHILD, он необязателен, если в dwStyle включает в себя стиль WS_POPUP.

hMenu
Идентифицирует меню или определяет идентификатор дочернего окна в зависимости от стиля окна. Для перекрывающего или выскакивающего окна, hMenu идентифицирует меню, которое нужно использовать с окном; если должно использоваться меню класса, он может быть значением ПУСТО (NULL). Для дочернего окна, hMenu определяет идентификатор дочернего окна, целочисленное значение, используемое элементом управления диалогового окна, чтобы сообщать своему родителю о событиях. Прикладная программа определяет идентификатор дочернего окна; он должен быть уникальным для всех дочерних окон того же самого родительского окна.

hInstance
Идентифицирует экземпляр модуля, который связан с окном.

lpParam
Указывает на значение, переданное окну через структуру CREATESTRUCT, вызванную при помощи параметра lParam сообщения WM_CREATE. Если прикладная программа вызывает CreateWindow, чтобы создать пользовательское окно интерфейса многодокументной среды(MDI), lpParam должен указывать на структуру CLIENTCREATESTRUCT.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор созданного окна. Если функция потерпела неудачу возвращаемое значение - ПУСТО (NULL). Чтобы получить расширенную информацию об ошибке вызовите функцию GetLastError.

Замечания
Перед возвратом значения, CreateWindow посылает сообщение WM_CREATE оконной процедуре.
Для перекрывающих, выскакивающих и дочерних окон CreateWindow посылает окну сообщения WM_CREATE, WM_GETMINMAXINFO и WM_NCCREATE. Параметр lParam сообщения WM_CREATE содержит указатель на структуру CREATESTRUCT. Если определен стиль WS_VISIBLE, CreateWindow посылает окну все сообщения, требующиеся для того, чтобы активизировать и показать окно.
Если стиль окна определяет строку заголовка, заголовок окна, указанный в lpWindowName отображается в строке заголовка. Когда CreateWindow используется, чтобы создать элементы управления, типа кнопок, переключателей и статических элементов управления, lpWindowName используют, чтобы определить текст на элементе управления.
Если при компоновке вашей прикладной программы Вы определяете версию Windows - 4.x, ее окна не могут иметь кнопки в строке заголовка, если они к тому же не имеют меню окна. Этого не требуется для прикладных программ, которым при компоновке Вы определили версию Windows - 3.x.

 

Следующие предопределенные классы элементов управления могут быть определены в параметре lpClassName:

BUTTON
(КНОПКА) Обозначает маленькое прямоугольное дочернее окно, которое представляет собой кнопку и пользователь может щелкать по ней мышью, чтобы включить или отключить ее. Кнопки управления могут использоваться самостоятельно или в группах, и они могут или быть подписаны или появляться без текста. Кнопки управления обычно изменяют свой вид, когда пользователь щелкает мышью по ним.
COMBOBOX
(КОМБИНИРОВАННОЕ ОКНО) Обозначает элемент управления, состоящий из окна со списком и поля выбора, похожего на элемент редактирования текста. При использовании этого стиля, прикладная программа должна отображать все время или окно со списком или включать раскрывающийся список. В зависимости от стиля комбинированного окна, пользователь сможет или не сможет редактировать содержание поля выбора. Если окно со списком видимо, вводимые символы внутри поля выбора подсвечивают сначала ввод в окно со списком, который соответствует печатаемым символам. Наоборот, выбор элемента в окне со списком отображает выбранный текст в поле выбора.
EDIT
(РЕДАКТИРУЕМОЕ ОКНО) Обозначает прямоугольное дочернее окно, внутри которого пользователь может напечатать с клавиатуры текст. Пользователь выбирает элемент управления и дает ему фокус клавиатуры, щелкая мышью по нему или перемещаясь в него, путем нажатия клавиши ТАБУЛЯЦИИ (TAB). Пользователь может напечатать текст, когда элемент управления редактируемого окна отображает мигающую каретку (caret); используйте мышь, чтобы перемещать курсор, выбирать символы, которые будут заменены, или установите курсор для вставки символов; или используйте КЛАВИШУ ВОЗВРАТА НА ПОЗИЦИЮ (BACKSPACE), чтобы удалять символы. Элементы управления редактируемого окна используют шрифт системы с переменным шагом и показывают на экране символы из символьного набора ANSI. Сообщение WM_SETFONT может также быть послано элементу управления окна редактирования, чтобы изменить заданный по умолчанию шрифт. Элементы управления окна редактирования увеличиваются в соответствии с табуляцией символов стольким количеством пробелов, сколько их требуются, чтобы переместить каретку в следующую позицию табуляции. Позиции табуляции принимаются такими, чтобы быть в каждом восьмом знакоместе.
LISTBOX
(ОКНО СО СПИСКОМ) Обозначает список строк символов. Этот элемент управления определяется всякий раз, когда прикладная программа должна представить список наименований, типа имен файлов, из которых пользователь может выбирать. Пользователь может выбрать строку, щелкая мышью по ней. Выбранная строка выделяется, а уведомительное сообщение передается в родительское окно. Чтобы листать списки, которые являются слишком длинными для элемента управления окна, используются вертикальная или горизонтальная линейки прокрутки окна со списком. Окно со списком автоматически скрывает или показывает линейку прокрутки, по мере необходимости. MDICLIENT
Обозначает рабочее окно МНОГОДОКУМЕНТАЛЬНОГО ИНТЕРФЕЙСА (MDI). Это окно принимает сообщения, которые управляют дочерними окнами прикладной программы МНОГОДОКУМЕНТАЛЬНОГО ИНТЕРФЕЙСА. Рекомендованный стиль содержит - WS_CLIPCHILDREN и WS_CHILD. Чтобы создать рабочее окно MDI, которое позволяет пользователю при появлении листать дочерние окна MDI, определите стили WS_HSCROLL и WS_VSCROLL. SCROLLBAR
(ЛИНЕЙКА ПРОКРУТКИ) Обозначает прямоугольник, который содержит бегунок и имеет стрелки направленные в оба конца. Линейка прокрутки посылает уведомительное сообщение своему родительскому окну всякий раз, когда пользователь щелкает мышью по элементу управления. В случае необходимости, родительское окно ответственно за модификацию позиции бегунка. Элементы управления линейкой прокрутки имеют тот же самый вид и пользуются функциями, что и линейки прокрутки, используемые в обычных окнах. Однако, в отличие от линеек прокрутки окна, линейки прокрутки элемента управления могут быть установлены для использования где-нибудь в окне, при прокрутке вводимой информации необходимой для окна. Класс линейки прокрутки включает также и элементы управления размером окна. Окно с изменяемыми размерами - это маленький прямоугольник, который пользователь может растягивать, чтобы изменить размер окна. STATIC
(СТАТИЧЕСКИЙ ЭЛЕМЕНТ) Обозначает простое текстовое поле, окно или прямоугольник, используемый для надписей, окно или другие отдельные элементы управления. Статические элементы управления не берут никакой вводимой информации и не обеспечивают никакой выводимой информации.

Ниже перечисленные стили окон могут быть определены в параметре dwStyle:

  • WS_BORDER - Создает окно, которое имеет тонкую линию рамки.
  • WS_CAPTION - Создает окно, которое имеет строку заголовка (включает в себя стиль WS_BORDER).
  • WS_CHILD - Создает дочернее окно. Этот стиль не может использоваться со стилем WS_POPUP.
  • WS_CHILDWINDOW - То же самое, что и стиль WS_CHILD.
  • WS_CLIPCHILDREN - Исключает область, занятую дочерними окнами, когда прорисовка происходит внутри родительского окна. Этот стиль используется при создании родительского окна.
  • WS_CLIPSIBLINGS - Закрепляет дочерние окна относительно друг друга, то есть когда отдельное дочернее окно принимает сообщение WM_PAINT, стиль WS_CLIPSIBLINGS закрепляет все другие перекрывающие дочерние окна вне области дочернего окна, которое нужно модифицировать. Если стиль WS_CLIPSIBLINGS не определен, а дочерние окна перекрываются, то, возможно, что при прорисовке внутри рабочей области дочернего окна, будет выводиться внутренняя рабочая область соседнего дочернего окна.
  • WS_DISABLED - Создает окно, которое первоначально заблокировано. Заблокированное окно не может принимать вводимую информацию от пользователя.
  • WS_DLGFRAME - Создает окно, которое имеет стиль рамки, обычно используемый с диалоговыми окнами. Окно с этим стилем не может иметь строку заголовка.
  • WS_GROUP - Определяет первый элемент управления в группе элементов управления. Группа состоит из этого первого элемента управления и всех определенных элементов управления после него, до следующего элемента управления со стилем WS_GROUP. Первый элемент управления в каждой группе обычно имеет стиль WS_TABSTOP, чтобы пользователь мог перемещаться из группы в группу. Пользователь может впоследствии передавать фокус клавиатуры от одной группы элементов управления в следующую группу элементов управления, используя клавиши со стрелками.
  • WS_HSCROLL - Создает окно, которое имеет горизонтальную линейку прокрутки.
  • WS_ICONIC - Создает окно, которое первоначально свернуто. Тот же самый стиль, что и WS_MINIMIZE.
  • WS_MAXIMIZE - Создает окно, которое первоначально развернуто.
  • WS_MAXIMIZEBOX - Создает окно, которое имеет кнопку Развернуть (Maximize). Не может быть объединен со стилем WS_EX_CONTEXTHELP. К тому же должен быть определен стиль WS_SYSMENU.
  • WS_MINIMIZE - Создает окно, которое первоначально свернуто. Тот же самый стиль, что и WS_ICONIC.
  • WS_MINIMIZEBOX - Создает окно, которое имеет кнопку Свернуть (Minimize). Не может быть объединен со стилем WS_EX_CONTEXTHELP. К тому же должен быть определен стиль WS_SYSMENU.
  • WS_OVERLAPPED - Создает перекрывающее окно. Перекрывающее окно имеет строку заголовка и рамку. Тот же самый стиль, что и WS_TILED.
  • WS_OVERLAPPEDWINDOW - Создает перекрывающее окно со стилями WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX. Тот же самый, что и стиль WS_TILEDWINDOW.
  • WS_POPUP - Создает выскакивающее окно. Этот стиль не может использоваться со стилем WS_CHILD.
  • WS_POPUPWINDOW - Создает выскакивающее окно со стилями WS_BORDER, WS_POPUP и WS_SYSMENU. Стили WS_CAPTION и WS_POPUPWINDOW должны быть объединены, чтобы сделать меню окна (window) видимым.
  • WS_SIZEBOX - Создает окно, которое имеет установку размеров рамки окна. Тот же самое, что и стиль WS_THICKFRAME.
  • WS_SYSMENU - Создает окно, которое имеет меню окна (window-menu) в его строке заголовка. К тому же должен быть определен стиль WS_CAPTION.
  • WS_TABSTOP - Определяет элемент управления, который может принимать фокус клавиатуры, когда пользователь нажимает клавишу ТАБУЛЯЦИИ (TAB). Нажатие на клавиши табуляции передает фокус клавиатуры на следующий элемент управления со стилем WS_TABSTOP.
  • WS_THICKFRAME - Создает окно, которое имеет установку размеров рамки окна. То же самое, что и стиль WS_SIZEBOX.
  • WS_TILED - Создает перекрывающее окно. Перекрывающее окно имеет строку заголовка и рамку. То же самое, что и стиль WS_ OVERLAPPED.
  • WS_TILEDWINDOW - Создает перекрывающее окно со стилями WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX. То же самое, что и стиль WS_ OVERLAPPEDWINDOW.
  • WS_VISIBLE - Создает окно, которое является первоначально видимым.
  • WS_VSCROLL - Создает окно, которое имеет вертикальную линейку прокрутки.

 

 

Ниже перечисленные стили кнопок (в классе BUTTON), которые могут быть определены в параметре dwStyle:

  • BS_3STATE - Создает кнопку, которая является такой же, как окошко для флажка, за исключением того, что поле окна может стать недоступным так же, как это делается при установке флажка ("галочки") проверки (checked) или при отмене его. Используйте недоступное состояние, чтобы показать, что состояние окошка для флажка не определено.
  • BS_AUTO3STATE - Создает кнопку, которая является таким же переключателем с тремя состояниями, за исключением того, что поле окна изменяет свое состояние, когда пользователь выбирает его. Состояние циклически проходит фазы установки флажка проверки, недоступности и отмены установки.
  • BS_AUTOCHECKBOX - Создает кнопку, которая также является окошком для флажка, за исключением того, что состояние установки флажка проверки автоматически переключается между установленным и не установленным параметром, каждый раз, когда пользователь выбирает эту кнопку.
  • BS_AUTORADIOBUTTON - Создает кнопку, которая то же, что и "радио" кнопка, за исключением того, что, когда пользователь выбирает её, Windows автоматически устанавливает состояние кнопки в режим контроля флажка, отметив ее "галочкой" и автоматически устанавливает проверку состояния для всех других кнопок в той же самой группе без проверки флажка.
  • BS_CHECKBOX - Создает маленькое, пустое окошко для флажка с текстом. По умолчанию, текст отображается справа от окошка. Чтобы отображать текст слева от окошка, объедините этот флажок со стилем BS_LEFTTEXT (или с эквивалентным стилем BS_RIGHTBUTTON).
  • BS_DEFPUSHBUTTON - Создает командную кнопку, которая ведет себя подобно кнопке стиля BS_PUSHBUTTON и к тому же имеет жирную черную рамку. Если кнопка находится в диалоговом окне, пользователь может выбрать кнопку, нажав клавишу ENTER, даже тогда, когда кнопка не имеет фокуса ввода. Этот стиль полезен для предоставления пользователю возможности быстро выбрать наиболее подходящую (заданную по умолчанию) опцию.
  • BS_GROUPBOX - Создает прямоугольник, в котором могут быть сгруппированы другие элементы управления. Любой текст, связанный с этим стилем отображается в верхнем левом угле прямоугольника.
  • BS_LEFTTEXT - Помещает текст слева от "радио" кнопки или окошечка-переключателя, когда объединен со стилем переключателя или "радио" кнопкой. Тот же самое, что и стиль BS_RIGHTBUTTON.
  • BS_OWNERDRAW - Создает кнопку представляемую владельцем. Окно владельца принимает сообщение WM_MEASUREITEM, когда кнопка создана и сообщение WM_DRAWITEM, когда внешний вид кнопки изменился. Не объединяйте стиль BS_OWNERDRAW с любыми другими стилями кнопки.
  • BS_PUSHBUTTON - Создает командную кнопку, которая отправляет сообщение WM_COMMAND окну владельца, когда пользователь выбирает эту кнопку.
  • BS_RADIOBUTTON - Создает маленький кружок с текстом. По умолчанию, текст отображается справа от кружка. Чтобы отображать текст слева от кружка, объедините этот флажок со стилем BS_LEFTTEXT (или его эквивалентом - стилем BS_RIGHTBUTTON). Используйте "радио" кнопки для групп связанного, но взаимоисключающего выбора.
  • BS_USERBUTTON - Устаревшая, но предусматривающая совместимость с 16-разрядными версиями Windows. Базирующиеся на Win32 прикладные программы должны использовать BS_OWNERDRAW взамен этого параметра.
  • BS_BITMAP - Определяет, что кнопка отображает точечный рисунок.
  • BS_BOTTOM - Помещает текст внизу прямоугольника кнопки.
  • BS_CENTER - Выравнивает текст горизонтально по центру в прямоугольнике кнопки.
  • BS_ICON - Определяет, что кнопка отображается как значок.
  • BS_LEFT - Выравнивает слева текст в прямоугольнике кнопки. Однако, если кнопка - окошечко-переключатель или "радио" кнопка, которые не имеет стиля BS_RIGHTBUTTON, текст остается выровненным справа от переключателя или "радио" кнопки.
  • BS_MULTILINE - Переносит по словам текст кнопки в дополнительные строки, если текстовая строка слишком длинна, чтобы поместиться в одной строке в прямоугольнике кнопки.
  • BS_NOTIFY - Дает возможность кнопке послать уведомительные сообщения BN_DBLCLK, BN_KILLFOCUS и BN_SETFOCUS в её родительское окно. Обратите внимание, что кнопки посылают уведомительное сообщение BN_CLICKED независимо от того, имеет ли она этот стиль.
  • BS_PUSHLIKE - Создает кнопку (типа переключателя, переключателя с тремя состояниями или "радио" кнопки) имеющую вид и действующую подобно командной кнопке. Выпуклый вид кнопки, когда она не нажата или не выбрана и притопленый, когда она нажата или выбрана.
  • BS_RIGHT - Выровненный справа текст в прямоугольнике кнопки. Однако, если кнопка - окошко для флажка или "радио" кнопка, которая не имеет стиля BS_RIGHTBUTTON, текст выровнен по правому краю справа от окошка для флажка или "радио" кнопки.
  • BS_RIGHTBUTTON - Устанавливает кружок "радио" кнопки или квадрат окошка для флажка справа от прямоугольника кнопки. Тот же самый стиль, что и BS_LEFTTEXT.
  • BS_TEXT - Определяет, что кнопка отображает текст.
  • BS_TOP - Размешает текст вверху прямоугольника кнопки.
  • BS_VCENTER - Размещает текст в середине (вертикально) прямоугольника кнопки.

Ниже перечислены стили комбинированного окна (в классе COMBOBOX), которые могут быть определены в параметре dwStyle:

  • CBS_AUTOHSCROLL - Автоматически прокручивает текст в поле редактирования текста вправо, когда пользователь вводит с клавиатуры символ в конце строки. Если этот стиль не установлен, принимается только текст, который помещается внутри прямоугольной границы поля.
  • CBS_DISABLENOSCROLL - В окне со списком показывает вертикальную линейку прокрутки заблокированной, когда поле окна содержит не достаточно элементов для прокрутки. Без этого стиля, линейка прокрутки скрыта, если окно со списком содержит не достаточно элементов.
  • CBS_DROPDOWN - Подобен CBS_SIMPLE, за исключением того, что окно со списком не отображается, пока пользователь не выберет значок рядом с полем редактирования текста.
  • CBS_DROPDOWNLIST - Подобен CBS_DROPDOWN, за исключением того, что поле редактирования текста заменено статическим текстовым элементом, который отображает текущий выбор в окне со списком.
  • CBS_HASSTRINGS - Определяет, что представляемое владельцем комбинированное окно содержит элементы, состоящие из строк. Комбинированное окно поддерживает память и адрес для строк, так что прикладная программа может использовать сообщение CB_GETLBTEXT, чтобы восстановить текст для отдельного элемента.
  • CBS_LOWERCASE - Преобразовывает в нижний регистр любые символы верхнего регистра, введенные в поле редактирования текста комбинированного окна.
  • CBS_NOINTEGRALHEIGHT - Определяет, что размер комбинированного окна - это точный размер, определенный прикладной программой, когда она создала комбинированное окно. Обычно, Windows устанавливает размеры комбинированного окна так, чтобы оно не отображало элементы частично.
  • CBS_OEMCONVERT - Преобразует текст, введенный в поле редактирования текста комбинированного окна. Текст преобразуется из набора символов Windows в набор символов OEM, а затем обратно в набор Windows. Это гарантирует соответствующее символьное преобразование, когда прикладная программа вызывает функцию CharToOem, чтобы преобразовать строку Windows в комбинированном окне в символы OEM. Этот стиль наиболее полезен для комбинированных окон, которые содержат имена файлов и применяются только в комбинированных окнах, созданных со стилем CBS_SIMPLE или CBS_DROPDOWN.
  • CBS_OWNERDRAWFIXED - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком все равной высоты. Окно владельца принимает сообщение WM_MEASUREITEM, когда комбинированное окно создано, а сообщение WM_DRAWITEM, когда внешний вид комбинированного окна изменился.
  • CBS_OWNERDRAWVARIABLE - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком являются переменными по высоте. Окно владельца принимает сообщение WM_MEASUREITEM для каждого элемента комбинированного окна, когда Вы создаете комбинированное окно; окно владельца принимает сообщение WM_DRAWITEM тогда, когда изменился внешний вид комбинированного окна.
  • CBS_SIMPLE - Всегда отображать окно со списком. Текущий выбор в окне со списком отображается в поле редактирования текста.
  • CBS_SORT - Автоматически сортирует строки, введенные в окно со списком.
  • CBS_UPPERCASE - Преобразовывает любые символы нижнего регистра в символы верхнего регистра, введенные в поле редактирования текста комбинированного окна.

Ниже перечисленные стили поля редактирования текста (в классе EDIT) могут быть определены в параметре dwStyle:

  • ES_AUTOHSCROLL - Автоматически прокручивает текст вправо на 10 символов, когда пользователь напечатает символ в конце строчки. Когда пользователь нажимает клавишу ENTER, управление прокручивает весь текст обратно, чтобы установить нуль.
  • ES_AUTOVSCROLL - Автоматически перемещает текст вверх на одну страницу, когда пользователь нажимает клавишу ENTER на последней строчке.
  • ES_CENTER - Выравнивает по центру текст в многостроковом поле редактирования текста.
  • ES_LEFT - Выравнивание текста слева.
  • ES_LOWERCASE - Преобразовывает все символы в нижний регистр, поскольку они печатаются внутри поля редактирования текста.
  • ES_MULTILINE - Обозначает многостроковое окно редактирования текста. Значение по умолчанию - одностроковое окно редактирования текста. Когда многостроковое поле редактирования находится в диалоговом окне, заданная по умолчанию ответная реакция на нажим клавиши ENTER должна активизировать кнопку по умолчанию. Чтобы использовать клавишу ENTER для перевода строки, стиль используйте ES_WANTRETURN. Когда многостроковое окно редактирования не в диалоговом окне и определен стиль ES_AUTOVSCROLL, поле редактирования показывает столько строчек, сколько это возможно и прокручивает вертикально, когда пользователь нажимает клавишу ENTER. Если Вы не определяете ES_AUTOVSCROLL, окно редактирования показывает столько строчек, сколько это возможно и подает звуковой сигнал, если пользователь нажимает клавишу ENTER, но больше ни строчки не может отобразиться в окне. Если Вы определяете стиль ES_AUTOHSCROLL, многостроковое окно редактирования автоматически горизонтально прокручивается, когда каретка проходит за правый край элемента управления. Чтобы запустить новую строку, пользователь должен нажать клавишу ENTER. Если Вы не определяете ES_AUTOHSCROLL, элемент управления, когда это необходимо, автоматически переносит без разрыва слова в начало следующей строки. Новая строка образуется и тогда, если пользователь нажимает клавишу ENTER. Размер окна определяет позицию перехода слова на новую строку. Если размер окна изменяется, изменяется позиция перехода на новую строку, а текст восстанавливается. Многостроковое окно редактирования текста может иметь линейки прокрутки . Окно редактирования с линейками прокрутки обрабатывают свои собственные сообщения от линейки прокрутки. Обратите внимание, что окно редактирования без линеек прокрутки, прокручивают текст, как описано в предыдущих параграфах и обрабатывают любые сообщений прокрутки, посланные родительским окном.
  • ES_NOHIDESEL - Отрицает заданное по умолчанию поведение для поля редактирования текста. Заданное по умолчанию поведение скрывает выбор, когда элемент управления теряет фокус ввода и инвертирует выбор, когда панель управления принимает фокус ввода. Если Вы определяете ES_NOHIDESEL, выбранный текст инвертируется, даже если панель управления не имеет фокуса.
  • ES_NUMBER - Позволяет ввести в поле редактирования только цифры.
  • ES_OEMCONVERT - Преобразует текст, введенный в окно редактирования. Текст преобразуется из набора символов Windows - в набор символов OEM, а затем обратно - в набор Windows. Это гарантирует соответствующее символьное преобразование, когда из прикладной программы вызывается функция CharToOem, чтобы преобразовать строку Windows в окне редактирования в символы OEM. Этот стиль наиболее полезен для окон редактирования текста, которые содержат имена файлов.
  • ES_PASSWORD - Отображает звездочку (*) вместо каждого символа, введенного с клавиатуры в окно редактирования. Вы можете использовать сообщение EM_SETPASSWORDCHAR, чтобы заменить ею символ, который отображается.
  • ES_READONLY - Не допускает пользователя к вводу или редактированию текста в окне редактирования.
  • ES_RIGHT - Выравнивает по правому краю текст в многострочном окне редактирования.
  • ES_UPPERCASE - Преобразует все символы в символы верхнего регистра, когда они вводятся в окно редактирования.
  • ES_WANTRETURN - Определяет, чтобы служебный код возврата каретки был вставлен тогда, когда пользователь нажимает клавишу ENTER при вводе текста в многострочное поле редактирования текста в диалоговом окне. Если Вы не определяете этот стиль, нажимая клавишу ENTER, вы получите тот же самый эффект, словно нажали заданную по умолчанию командную кнопку диалогового окна. Этот стиль не имеет никакого влияния в однострочном окне редактирования.

 

 

Следующие стили элемента управления окна со списком (в классе LISTBOX) могут быть определены в параметре dwStyle:

  • LBS_DISABLENOSCROLL - Показывает заблокированную вертикальную линейку прокрутки в окне со списком, когда поле окна не содержит достаточно элементов для прокрутки. Если Вы не определяете этот стиль, линейка прокрутки скрыта, когда окно со списком не содержит достаточно элементов.
  • LBS_EXTENDEDSEL - Позволяет многочисленным элементам быть выбранными, при помощи использования клавиши SHIFT и мыши или специальной комбинации клавиш.
  • LBS_HASSTRINGS - Определяет, что окно со списком содержит элементы, состоящие из строк. Окно со списком сохраняет память и адреса строк, так что прикладная программа может использовать сообщение LB_GETTEXT, чтобы восстановить текст для отдельного элемента. По умолчанию, все окна со списком за исключением окон со списком предоставленных владельцем имеют этот стиль. Вы можете создать предоставляемое владельцем окно со списком с ним или без этого стиля.
  • LBS_MULTICOLUMN - Определяет многостолбцовое окно со списком, которое прокручивается горизонтально. Сообщение LB_SETCOLUMNWIDTH устанавливает ширину столбцов.
  • LBS_MULTIPLESEL - Включает или выключает выбор последовательности символов каждый раз, когда пользователь одним или двойным щелчком мыши активизирует строку символов в окне со списком. Пользователь может выбрать любое число строк.
  • LBS_NODATA - Определяет "отсутствие данных" в окне со списком. Этот стиль определяется тогда, когда число элементов в окне со списком может превысить одну тысячу. Окно со списком с "отсутствующими данными" должно иметь также стиль LBS_OWNERDRAWFIXED, но не должно иметь стилей LBS_SORT или LBS_HASSTRINGS. Окно со списком с "отсутствующими данными" имеет сходство с окном со списком предоставляемым владельцем за исключением того, что оно не содержит ни строковых или растровых данных для элемента. Команды "добавить", "вставить" или "удалить" элемент всегда игнорируют любые передаваемые элементы данных; запрос на поиск строки внутри окна всегда терпит неудачу. Windows посылает сообщение WM_DRAWITEM окну владельцу, когда элемент должен быть прорисован. ЭлементID (itemID) член структуры DRAWITEMSTRUCT, переданный с сообщением WM_DRAWITEM, определяет номер строки элемента, который будет прорисован. Окно списка с "отсутствующими данными" не посылает сообщение WM_DELETEITEM.
  • LBS_NOINTEGRALHEIGHT - Определяет, что размер окна со списком соответствует размеру, определенному прикладной программой, когда она создавала окно со списком. Обычно, Windows устанавливает величину окна со списком так, чтобы оно не отображало элементы частично.
  • LBS_NOREDRAW - Определяет, что вид окна со списком не модифицируется, когда производятся изменения. Вы можете в любое время изменить этот стиль, посылая сообщение WM_SETREDRAW.
  • LBS_NOSEL - Определяет, что окно со списком содержит элементы, которые могут просматриваться, но не выбираться.
  • LBS_NOTIFY - Сообщает родительскому окну о входящем сообщении всякий раз, когда пользователь щелкает мышью или дважды щелкает по строке в окне списка.
  • LBS_OWNERDRAWFIXED - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком появляются одинаковой высоты. Окно владельца принимает сообщение WM_MEASUREITEM, когда окно со списком создано, а сообщение WM_DRAWITEM, когда внешний вид окна изменился.
  • LBS_OWNERDRAWVARIABLE - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком появляются переменными по высоте. Окно владельца принимает сообщение WM_MEASUREITEM для каждого элемента в окне со списком, когда оно создано, а сообщение WM_DRAWITEM, когда внешний вид окна изменился.
  • LBS_SORT - Сортирует строки в окне со списком по алфавиту.
  • LBS_STANDARD - Сортирует строки в окне со списком в алфавитном порядке. Родительское окно принимает входящее сообщение всякий раз, когда пользователь щелкает мышью или дважды щелкает по строке. Окно со списком имеет, рамку со всех сторон.
  • LBS_USETABSTOPS - Дает возможность окну списка распознавать и развернуть символы в виде таблицы при прорисовке его строк. По умолчанию таблица занимает 32 единицы измерения диалогового окна. Единица измерения диалогового окна - горизонтальное или вертикальное расстояние. Одна горизонтальная единица диалогового окна равна четвертой части текущей единицы измерения габаритов диалогового окна. Windows вычисляет эти единицы измерения, основанные на высоте и ширине шрифта существующей системы. Функция GetDialogBaseUnits возвращает значение текущей базовой единицы измерения диалогового окна в пикселях.
  • LBS_WANTKEYBOARDINPUT - Определяет, что владелец окна списка принимает сообщения WM_VKEYTOITEM всякий раз, когда пользователь нажимает клавишу, а окно со списком имеет фокус ввода. Это дает возможность прикладной программе выполнить специальную обработку при вводе с клавиатуры. 

Следующие стили линейки прокрутки (в классе SCROLLBAR) могут быть определены в dwStyle параметре:

  • SBS_BOTTOMALIGN - Выравнивает нижнюю кромку линейки прокрутки с нижней кромкой прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию высоту для системных линеек прокрутки. Используйте этот стиль со стилем SBS_HORZ.
  • SBS_HORZ - Обозначает горизонтальную линейку прокрутки. Если стили ни SBS_BOTTOMALIGN, ни SBS_TOPALIGN не определены, линейка прокрутки имеет высоту, ширину и позицию, определенные x, y, nWidth и nHeight.
  • SBS_LEFTALIGN - Выравнивает левый край линейки прокрутки с левым краем прямоугольника, определенного параметрами x, y, nWidth и nHeight. Линейка прокрутки имеет заданную по умолчанию ширину для системных линеек прокрутки. Используйте этот стиль с SBS_VERT стилем.
  • SBS_RIGHTALIGN - Выравнивает правый край линейки прокрутки с правым краем прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию ширину для системных линеек прокрутки. Используйте этот стиль с SBS_VERT стилем.
  • SBS_SIZEBOX - Обозначает размер окна. Если Вы не определяете ни SBS_SIZEBOXBOTTOMRIGHTALIGN, ни SBS_SIZEBOXTOPLEFTALIGN стиль, размер окна имеет высоту, ширину и позицию, определенную параметрами x, y, nWidth и nHeight.
  • SBS_SIZEBOXBOTTOMRIGHTALIGN - Выравнивает размер нижнего правого угла окна с нижним правым углом прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Размер окна имеет заданный по умолчанию размер для системы размера окон. Используйте этот стиль с SBS_SIZEBOX стилем.
  • SBS_SIZEBOXTOPLEFTALIGN - Выравнивает размер верхнего левого угла окна с левым верхним углом прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Размер окна имеет заданный по умолчанию размер для системы размера окон. Используйте этот стиль с SBS_SIZEBOX стилем.
  • SBS_SIZEGRIP - Подобен стилю SBS_SIZEBOX, но с выпуклой рамкой.
  • SBS_TOPALIGN - Выравнивает верхний край линейки прокрутки с верхним краем прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию высоту для системы линеек прокрутки. Используйте этот стиль с SBS_HORZ стилем.
  • SBS_VERT - Обозначает вертикальную линейку прокрутки. Если Вы не определяете ни SBS_RIGHTALIGN, ни SBS_LEFTALIGN стиль, линейка прокрутки имеет высоту, ширину и позицию, определенную параметрами x, y, nWidth и nHeight.

Следующие стили статического элемента управления (в классе STATIC) могут быть определены в параметре dwStyle. Статический элемент управления может иметь только один из этих стилей:

  • SS_BITMAP - Определяет, что в статическом элементе управления должен отобразиться точечный рисунок. Текст кода ошибки - имя точечного рисунка (не имя файла) определенного в другом месте файла ресурса. Стиль игнорирует параметры nWidth и nHeight; элемент управления автоматически устанавливает собственные размеры, чтобы поместить точечный рисунок.
  • SS_BLACKFRAME - Определяет окно с рамкой, использующей тот же самый цвет, как и у рамки основного окна. Этот цвет черный по умолчанию в системе цветов Windows.
  • SS_BLACKRECT - Определяет прямоугольник, заполненный текущим цветом рамки окна. По умолчанию этот цвет черный в системе цветов Windows.
  • SS_CENTER - Определяет простой прямоугольник и выравнивает по центру текст кода ошибки в прямоугольнике. Текст форматируется перед отображением его на экране. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей центрированной строки.
  • SS_CENTERIMAGE - Определяет, что средняя точка статического элемента управления со стилем SS_BITMAP или SS_ICON должна остаться фиксированной, когда элемент управления изменяется. Четыре стороны корректируются так, чтобы поместить новый точечный рисунок или пиктограмму. Если статический элемент управления имеет стиль SS_BITMAP, а точечный рисунок меньше чем рабочая область элемента управления, рабочая область заполняется цветом пикселя левого верхнего угла точечного рисунка. Если статический элемент управления имеет стиль SS_ICON, пиктограмма появляется, но не окрашивает рабочую область.
  • SS_GRAYFRAME - Определяет поле окна с рамкой, выведенной тем же самым цветом, что и экранный фон (рабочий стол). По умолчанию в системе цветов Windows этот цвет серый.
  • SS_GRAYRECT - Определяет прямоугольник, заполненный текущим экранным цветом фона. По умолчанию в системе цветов Windows этот цвет серый.
  • SS_ICON - Определяет пиктограмму, отображаемую в диалоговом окне. Данный текст - имя пиктограммы (не имя файла) определенный в другом месте файла ресурса. Стиль игнорирует параметры nWidth и nHeight; пиктограмма автоматически устанавливает свою величину.
  • SS_LEFT - Определяет простой прямоугольник и выравнивание по левому краю текста, помещенного в прямоугольнике. Текст форматируется перед его отображением. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей выровненной по левой границе строки.
  • SS_LEFTNOWORDWRAP - Определяет простой прямоугольник и выравнивание по левому краю текста, помещенного в прямоугольнике. Планшеты расширяются, но слова не переносятся. Текст, который выходит за пределы конца строки, отсекается.
  • SS_METAPICT - Определяет, что изображение метафайла должно отобразиться в статическом элементе управления. Данный текст - имя изображения метафайла (не имя файла) определенный в другом месте в файле ресурса. Статический элемент управления метафайла имеет фиксированный размер; изображение метафайла масштабируется, чтобы приспособить рабочую область статического элемента управления.
  • SS_NOPREFIX - Предотвращает интерпретацию любого символа амперсанта (&) в тексте элемента управления как символа префикса акселератора. Они отображаются с удаленным амперсантом и следующим за ним подчеркнутым символом в строке. Этот стиль статического элемента управления может быть включен с любым из определенных статических элементов управления. Прикладная программа может объединять SS_NOPREFIX с другими стилями, используя поразрядный оператор OR = ИЛИ (|). Это может быть полезно, когда имена файлов или другие строки, которые могут содержать амперсант (&) должны отображаться в статическом элементе управления диалогового окна.
  • SS_NOTIFY - Посылает родительскому окну уведомительные сообщения STN_CLICKED и STN_DBLCLK, когда пользователь щелкает или дважды щелкает мышью по элементу управления.
  • SS_RIGHT - Определяет простой прямоугольник и выравнивает по правому краю текста помещенный в прямоугольнике. Текст форматируется перед его отображением на экране. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей выровненной по правой границе строки.
  • SS_RIGHTIMAGE - Определяет, что угол правой нижней части статического элемента управления со стилем SS_BITMAP или SS_ICON должен остаться фиксированным, когда элемент управления изменяется. Только верхняя и левая стороны корректируются, чтобы поместить новый точечный рисунок или пиктограмму.
  • SS_SIMPLE - Определяет простой прямоугольник и отображает одиночную строку выровненного по левой границе текста в прямоугольнике. Текстовая строка не может быть, сокращена или изменена в любом случае. Родительское окно панели управления или диалоговое окно не должны обрабатывать сообщение WM_CTLCOLORSTATIC.
  • SS_WHITEFRAME - Определяет поле окна с рамкой, выведенной тем же самым цветом как фон окна. По умолчанию, в системе цветов Windows - этот цвет белый.
  • SS_WHITERECT - Определяет прямоугольник, заполненный текущим цветом фона окна. По умолчанию, в системе цветов Windows - этот цвет белый.

 


Ниже перечислены стили диалогового окна, которые могут быть определены в параметре dwStyle:

  • DS_3DLOOK - Обеспечивает диалоговое окно не полужирным шрифтом и выводит трехмерные рамки вокруг элементов управления окна в блоке диалога.
  • DS_3DLOOK - Этот стиль требуется только базирующимся на Win32 прикладным программам, компилируемым для версий Windows ранее, чем Windows 95 или Windows NT 4.0. Система автоматически применяет трехмерный вид к диалоговым окнам, созданным прикладными программами, компилируемыми для текущих версий Windows.
  • DS_ABSALIGN - Указывает, что координаты диалогового окна - экранные координаты; иначе, Windows принимает их за координаты пользователя.
  • DS_CENTER - Выравнивает по центру диалоговое окно в рабочей области; то есть в области, не загораживаемой панелью.
  • DS_CENTERMOUSE - Выравнивает по центру курсор мыши в диалоговом окне.
  • DS_CONTEXTHELP - Включает вопросительный знак в строке заголовка диалогового окна. Когда пользователь щелкает мышью по вопросительному знаку, курсор изменятся на вопросительный знак со стрелкой-указателем. Если пользователь затем щелкает мышью по элементу управления в диалоговом окне, элемент управления принимает сообщение WM_HELP. Элемент управления должен передать сообщение для диалоговой процедуры, которая должна вызвать функцию WinHelp, использующую команду HELP_WM_HELP. Прикладная программа Справка (Help) отображает выскакивающее окно, которое обычно содержит справку об элементе управления. Обратите внимание, что DS_CONTEXTHELP - только метка - заполнитель. Когда диалоговое окно создано, система проверяет наличие DS_CONTEXTHELP и, если она имеется, добавляет WS_EX_CONTEXTHELP к расширенному стилю диалогового окна. WS_EX_CONTEXTHELP не может использоваться со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
  • DS_CONTROL - Создает диалоговое окно, которое работает также как дочернее окно другого диалогового окна, очень похожее на страницу в окне свойств. Этот стиль позволяет пользователю перемещаться среди элементов управления дочернего диалогового окна, использовать его клавиши-ускорители, и так далее.
  • DS_FIXEDSYS - Использует SYSTEM_FIXED_FONT вместо SYSTEM_FONT.
  • DS_LOCALEDIT - Применяется только для 16-разрядных прикладных программ. Этот стиль управляет элементами редактирования в диалоговом окне, чтобы зарезервировать память в сегменте данных прикладной программы. Иначе, элементы редактирования резервируют память объекта глобальной памяти.
  • DS_MODALFRAME - Создает диалоговое окно с модальной рамкой диалогового окна, которая может быть объединена со строкой заголовка и меню окна, путем определения стилей WS_CAPTION и WS_SYSMENU.
  • DS_NOFAILCREATE - Создает диалоговое окно, даже если происходят ошибки - например, если дочернее окно не может быть создано или если система не может создать специальный сегмент данных для элементов редактирования.
  • DS_NOIDLEMSG - Подавляет сообщения WM_ENTERIDLE, которое Windows иначе послал бы владельцу диалогового окна, в то время как диалоговое окно отображается на экране.
  • DS_RECURSE - Стиль Диалогового окна для подобно элементу управления диалоговых окон.
  • DS_SETFONT - Указывает, что шаблон диалогового окна (структура DLGTEMPLATE) содержит два дополнительных элемента, определяющих имя шрифта и размер в пунктах. Соответствующий шрифт используется, чтобы отображать текст внутри рабочей области диалогового окна и внутри элементов управления диалогового окна. Windows передает дескриптор шрифта диалоговому окну и каждому элементу управления, посылая им сообщение WM_SETFONT.
  • DS_SETFOREGROUND - Не применяется в16-разрядных версиях Microsoft Windows. Этот стиль приводит диалоговое окно в активный режим. Внутри Windows вызывает для диалогового окна функцию SetForegroundWindow.
  • DS_SYSMODAL - Создает системно-модальное диалоговое окно. Этот стиль заставляет диалоговое окно иметь стиль WS_EX_TOPMOST, но в остальном, он не имеет никакого влияния на диалоговое окно или поведение других окон в системе, когда отображается диалоговое окно.

Windows 95: система может поддерживать максимум 16,364 дескрипторов окна.

Смотри также
CharToOem, CLIENTCREATESTRUCT, CreateDialog, CREATESTRUCT, CreateWindowEx, DialogBox, DLGTEMPLATE, DRAWITEMSTRUCT, GetDialogBaseUnits, GlobalAddAtom, LB_GETTEXT, LB_SETCOLUMNWIDTH, MessageBox, RegisterClass, SetForegroundWindow, WM_COMMAND, WM_CREATE, WM_DELETEITEM, WM_DRAWITEM, WM_ENTERIDLE, WM_GETMINMAXINFO, WM_MEASUREITEM, WM_NCCREATE, WM_PAINT, WM_SETFONT, WM_SETREDRAW, WM_VKEYTOITEM

Размещение и совместимость CreateWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется


Функция CreateWindowEx

(СоздатьОкноУлучшенное)

Функция CreateWindowEx создает перекрывающее, выпрыгивающее или дочернее окно с расширенным стилем; иначе, эта функция идентична функции CreateWindow. Для получения дополнительной информации о создании окна и для полного описания других параметров CreateWindowEx, см. статью CreateWindow.

Синтаксис

HWND CreateWindowEx
(
DWORD dwExStyle, // улучшенный стиль окна
LPCTSTR lpClassName, // указатель на зарегистрированное имя класса
LPCTSTR lpWindowName, // указатель на имя окна
DWORD dwStyle, // стиль окна
int x, // горизонтальная позиция окна
int y, // вертикальная позиция окна
int nWidth, // ширина окна
int nHeight, // высота окна
HWND hWndParent, // дескриптор родительского или окна
// собственника
HMENU hMenu, // дескриптор меню или идентификатор
// дочернего окна
HINSTANCE hInstance, // дескриптор экземпляра прикладной
// программы
LPVOID lpParam // указатель на данные создания окна
);

Параметры

dwExStyle
Определяет расширенный стиль окна. Этот параметр может быть одно из следующих значений:

  • WS_EX_ACCEPTFILES - Определяет, что окно, созданное с этим стилем принимает файлы при помощи информационной технологии "перетащи и вставь".
  • WS_EX_APPWINDOW - Активизирует окно верхнего уровня на панель задач, когда окно свернуто.
  • WS_EX_CLIENTEDGE - Определяет, что окно имеет рамку с углубленным краем.
  • WS_EX_CONTEXTHELP - Включает вопросительный знак в строку заголовка окна. Когда пользователь щелкает мышью по вопросительному знаку, курсор меняется на вопросительный знак с указателем. Если пользователь затем щелкает мышью по дочернему окну, потомок принимает сообщение WM_HELP. Дочернее окно должно передать сообщение родительской оконной процедуре, которая должна вызваться функцией WinHelp, использующей команду HELP_WM_HELP. Прикладная программа Справки показывает выскакивающее окно, которое обычно содержит справку для дочернего окна. WS_EX_CONTEXTHELP не может использоваться со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
  • WS_EX_CONTROLPARENT - Позволяет пользователю передвигаться среди дочерних окон основного окна, используя клавишу табуляции (TAB).
  • WS_EX_DLGMODALFRAME - Создает окно, которое имеет двойную рамку; окно может быть создано (необязательно) со строкой заголовка, которую определяет стиль WS_CAPTION в параметре dwStyle.
  • WS_EX_LEFT - Окно имеет общеупотребительные свойства "выравнивания по левой границе". Это - по умолчанию.
  • WS_EX_LEFTSCROLLBAR - Если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка чтения, вертикальная линейка прокрутки (если появляется) - слева от рабочей области. Для других языков, этот стиль игнорируется и не обрабатывается как ошибка.
  • WS_EX_LTRREADING - Текст окна отображается, используя свойство порядка чтения Слева - Направо. Это - по умолчанию.
  • WS_EX_MDICHILD - Создает MDI дочернее окно.
  • WS_EX_NOPARENTNOTIFY - Определяет, что дочернее окно, созданное с этим стилем не посылает сообщение WM_PARENTNOTIFY родительскому окну, когда оно создается или разрушается.
  • WS_EX_OVERLAPPEDWINDOW - Объединяет стили WS_EX_CLIENTEDGE и WS_EX_WINDOWEDGE.
  • WS_EX_PALETTEWINDOW - Объединяет стили WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW и WS_EX_TOPMOST.
  • WS_EX_RIGHT - Окно имеет общеупотребительные свойства "выравнивание по правому краю". Оно зависит от класса окна. Этот стиль имеет эффект только тогда, если язык оболочек Еврейский, Арабский или другой язык, который поддерживает иной порядок выравнивания для чтения; иначе, стиль игнорируется и не обрабатывается как ошибка.
  • WS_EX_RIGHTSCROLLBAR - Вертикальная линейка прокрутки (если появляется) - справа от рабочей области. Это - по умолчанию.
  • WS_EX_RTLREADING - Если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка выравнивания для чтения, текст в окне отображается, используя свойства порядка чтения, Справа - Налево. Для других языков, стиль игнорируется и не обрабатывается как ошибка.
  • WS_EX_STATICEDGE - Создает окно с трехмерным стилем рамки, предполагается использовать для элементов, которые не принимают вводимую информацию от пользователя.
  • WS_EX_TOOLWINDOW - Создает окно инструментальных средств; то есть окно предполагается использовать как плавающую инструментальную панель. Окно инструментальных средств имеет строку заголовка, которая является короче, чем нормальная строка заголовка, а заголовок окна выводится, с использованием меньшего шрифта. Окно инструментальных средств не появляется в панели задач или в диалоговом окне, которое появляется, когда пользователь нажимает ALT+TAB.
  • WS_EX_TOPMOST - Определяет, что окно, созданное с этим стилем должно быть размещено выше всех, не самых верхних окон и должно стоять выше их, даже тогда, когда окно дезактивировано. Чтобы добавить или удалить этот стиль, используйте функцию SetWindowPos.
  • WS_EX_TRANSPARENT - Определяет, что окно, созданное с этим стилем должно быть прозрачным. То есть любые окна, которые появляются из-под окна, не затеняются им. Окно, созданное с этим стилем принимает WM_PAINT сообщения только после того, как все сестринские окна под ним модифицировались.
  • WS_EX_WINDOWEDGE - Определяет, что окно имеет рамку с выпуклым краем.

Использование стиля WS_EX_RIGHT для статического или редактируемого элементов управления имеет тот же самый эффект как и использование стиля SS_RIGHT или ES_RIGHT, соответственно. Использование этого стиля с командными кнопками имеет тот же самый эффект как и использование стилей BS_RIGHT и BS_RIGHTBUTTON.

lpClassName
Указывает на строку с нулевым символом в конце или на целочисленный атом. Если lpClassName - атом, он должен быть глобальным атомом, созданным предыдущим вызовом функции GlobalAddAtom. Атом, 16-разрядное значение меньше чем 0xC000, должно быть младшим словом в lpClassName; старшее слово должно быть нулевое. Если lpClassName - строка, она определяет имя класса окна. Имя класса может быть любое имя, зарегистрированное функцией RegisterClass или любым из предопределенных имен класса элементов управления.

lpWindowName
Указывает на строку с нулевым символом в конце, которая определяет имя окна.

dwStyle
Определяет стиль создаваемого окна. Что касается остального списка стилей окна, которые могут быть определены в dwStyle, см. CreateWindow.

x
Определяет начальную горизонтальную позицию окна. Для перекрывающего или выскакивающего окна параметр x - начальная x-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна x - x-координата левого верхнего угла окна относительно левого верхнего угла рабочей области родительского окна. Если x установлен как CW_USEDEFAULT, Windows выбирает заданную по умолчанию позицию для левого верхнего угла окна и игнорирует y параметр. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если он определен для всплывающего или дочернего окна параметры x и y устанавливаются в нуль.

y
Определяет начальную вертикальную позицию окна. Для перекрывающего или выскакивающего окна, параметр y - начальная y-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна, y - начальная y-координата левого верхнего угла дочернего окна относительно левого верхнего угла рабочей области родительского окна. Для окна со списком, y - начальная y-координата левого верхнего угла рабочей области окна со списком относительно левого верхнего угла рабочей области родительского окна. Если перекрывающее окно создано в стиле WS_VISIBLE с набором битов, а параметр x установлен как CW_USEDEFAULT, Windows игнорирует параметр y.

nWidth
Определяет ширину окна в единицах измерения устройства. Для перекрывающих окон nWidth - ширина окна в экранной системе координат или CW_USEDEFAULT. Если nWidth - CW_USEDEFAULT, Windows выбирает заданную по умолчанию ширину и высоту для окна; заданная по умолчанию ширина простирается от начальных x-координат до правого края экрана; заданная по умолчанию высота простирается от начальной y-координаты до верхней части области значка. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если CW_USEDEFAULT определен для выскакивающего или дочернего окна, параметры nWidth и nHeight устанавливаются в нуль.

nHeight
Определяет высоту окна в единицах измерения устройства. Для перекрывающих окон, nHeight - высота окна в экранной системе координат. Если параметр nWidth установлен как CW_USEDEFAULT, Windows игнорирует nHeight.

hWndParent
Идентифицирует родительское окно или владельца создаваемого окна. Допустимый дескриптор окна должен быть дан, когда дочернее окно или находящееся в собственности окно созданы. Дочернее окно ограничено рабочей областью родительского окна. Находящееся в собственности окно - перекрывающее окно, которое разрушается, когда окно его владельца разрушено или скрыто, когда его владелец свернут; оно всегда отображается на верхней части окна его владельца. Несмотря на то, что этот параметр должен определять правильный дескриптор, если параметр dwStyle включает в себя стиль WS_CHILD, это необязательно, если dwStyle включает в себя стиль WS_POPUP.

hMenu
Идентифицирует меню или, в зависимости от стиля окна, определяет идентификатор дочернего окна. Для перекрывающего или выскакивающего окна, hMenu идентифицирует меню, которое будет использоваться окном; этот параметр может быть значением ПУСТО (NULL), если меню класса будет использовано. Для дочернего окна, hMenu определяет идентификатор дочернего окна, целочисленное значение, используемое элементом управления диалогового окна, что-бы сообщать родителю о событиях. Прикладная программа определяет идентификатор дочернего окна; он должно быть уникальным для всех дочерних окон того же самого родительского окна.

hInstance
Идентифицирует экземпляр модуля, который будет связан с окном.

lpParam
Указывает на значение, переданное окну через структуру CREATESTRUCT, вызванную параметром lParam сообщения WM_CREATE. Если прикладная программа вызвала CreateWindow, чтобы создать пользовательское окно многодокументной среды, lpParam должен указывать на структуру CLIENTCREATESTRUCT.

Возвращаемые значения
Если функция успешно завершила работу, возвращаемое значение - дескриптор для созданного окна. Если функция потерпела неудачу, возвращаемое значение - ПУСТО (NULL).

Замечания Функция CreateWindowEx посылает создаваемому окну сообщения WM_NCCREATE, WM_NCCALCSIZE и WM_CREATE. За информацией о классах элементов управления окна, стилях окна и стилях элементов управления, используемых с этой функцией, обращайтесь к описанию функции CreateWindow. Windows 95: система может поддерживать максимум 16,364 дескрипторов окна.

Смотри также
CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindow, GlobalAddAtom, RegisterClass, SetWindowPos, WM_CREATE, WM_NCCALCSIZE, WM_NCCREATE, WM_PAINT, WM_PARENTNOTIFY

Размещение и совместимость CreateWindowEx:

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе hMenu ограничено размером в (СЛОВО) WORD в Win32s

 

Функция DeferWindowPos

(ОтложеннаяПозицияОкна)

Функция DeferWindowPos модифицирует структуру, определяющую позицию множества окон в определенном окне. Функция затем возвращает дескриптор модифицируемой структуре. Функция EndDeferWindowPos использует информацию в этой структуре, чтобы изменить позицию и размер ряда окон одновременно. Функция BeginDeferWindowPos создает структуру.

HDWP DeferWindowPos
(
HDWP hWinPosInfo, // дескриптор внутренней структуры
HWND hWnd, // дескриптор размещения окна
HWND hWndInsertAfter, // дескриптор порядка размещения
int x, // позиция по горизонтали
int y, // позиция по вертикали
int cx, // ширина
int cy, // высота
UINT uFlags // флажки позиционирования окна
);

Параметры

hWinPosInfo
Идентифицирует размещающую множество окон структуру, которая содержит размеры и информацию о позиции для одного или большего количества окон. Эта структура возвращается функцией BeginDeferWindowPos или самым последним вызовом функции DeferWindowPos.

hWnd
Идентифицирует окно, для которого информация о модификации сохраняется в структуре.

hWndInsertAfter
Идентифицирует окно, которое предшествует установленному окну в Z-последовательности. Этот параметр должен быть дескриптор окна или одно из следующих значений:

  • HWND_BOTTOM - Размещает окно внизу Z - последовательности. Если параметр hWnd идентифицирует самое верхнее окно, окно теряет свое самое верхнее состояние и помещается внизу всех других окон.
  • HWND_NOTOPMOST - Помещает окно выше всех не самых верхних окон (то есть позади всех самых верхних окон). Этот флажок не имеет никакого эффекта, если окно - уже не самое верхнее окно.
  • HWND_TOP - Помещает окно наверху Z - последовательности.
  • HWND_TOPMOST - Помещает окно выше всех не самых верхних окон. Окно поддерживает самую верхнюю позицию даже, когда оно дезактивировано.

Этот параметр игнорируется, если флажок SWP_NOZORDER установлен в параметре uFlags.

x
Устанавливает x-координату левого верхнего угла окна.

y
Устанавливает y-координату левого верхнего угла окна.

cx
Устанавливает новую ширину окна, в пикселях.

cy
Устанавливает новую высоту окна, в пикселях.

uFlags
Устанавливает комбинацию следующих значений, которые воздействуют на размер и позицию окна:

  • SWP_DRAWFRAME - Выводит рамку (определенную в описании класса окна) вокруг окна.
  • SWP_FRAMECHANGED - Посылает окну сообщение WM_NCCALCSIZE, даже если размер окна не изменяется. Если этот флажок не установлен, WM_NCCALCSIZE посылается только тогда, когда размер окна изменяется.
  • SWP_HIDEWINDOW - Скрывает окно.
  • SWP_NOACTIVATE - Не активизирует окно. Если этот флажок не установлен, окно активизируется и перемещается в верхнюю часть или самой верхней или не самой верхней группы (в зависимости от установки параметра hWndInsertAfter).
  • SWP_NOCOPYBITS - Сбрасывает все содержание рабочей области. Если этот флажок не установлен, допустимое содержание рабочей области сохраняется и копируется обратно в рабочую область после того, как окно установлено по размеру или переустановлено.
  • SWP_NOMOVE - Сохраняет текущую позицию (игнорирует параметры X и Y).
  • SWP_NOOWNERZORDER - Не изменяет позицию окна владельца в Z-последовательности.
  • SWP_NOREDRAW - Не перерисовывает изменения. Если этот флажок установлен, никакой перерисовки любого вида не происходит. Это применяется к рабочей области, нерабочей области (включая область заголовка и полосы прокрутки) и любой части родительского окна, раскрытого в результате перемещения окна. Когда этот флажок установлен, прикладная программа должна явно лишить законной силы или перерисовывать любые части окна и родительского окна, которые необходимо переделать.
  • SWP_NOREPOSITION - То же самое, что и флажок SWP_NOOWNERZORDER.
  • SWP_NOSENDCHANGING - Предохраняет окно от приема сообщения WM_WINDOWPOSCHANGING.
  • SWP_NOSIZE - Сохраняет текущий размер (игнорирует параметры cx и cy).
  • SWP_NOZORDER - Сохраняет текущую Z-последовательность (игнорирует параметр hWndInsertAfter).
  • SWP_SHOWWINDOW - Показывает окно.

Возвращаемые значения
Возвращаемое значение идентифицирует модернизированную структуру расположения составного окна. Дескриптор, возвращенный этой функцией, может отличаться от дескриптора, переданного в функцию. Новый дескриптор, который эта функция возвращает должен быть передан в ходе следующего обращения к функции DeferWindowPos или EndDeferWindowPos. Если недостающие ресурсы системы доступны для функции, чтобы завершиться успешно, возвращаемое значение - ПУСТО (NULL).

Замечания
Если обращение к DeferWindowPos не выполняет задачу, прикладная программа должна отказаться от операции позиционирования окна и не вызывать EndDeferWindowPos. Если SWP_NOZORDER не установлен, Windows помещает окно, идентифицированное параметром hWnd в позиции после окна, идентифицированного параметром hWndInsertAfter. Если hWndInsertAfter - ПУСТО (NULL) или HWND_TOP, Windows помещает hWnd окна наверху Z-последовательности. Если hWndInsertAfter установлен в HWND_BOTTOM, Windows помещает hWnd окна внизу Z-последовательности. Все координаты для дочерних окон - относительно левого верхнего угла рабочей области родительского окна. Окно может быть сделано самым верхним окном или установкой в hWndInsertAfter флажка HWND_TOPMOST и гарантируя, что флажок SWP_NOZORDER не установлен, или установкой позиции окна в Z-последовательности так, чтобы оно было выше любого существующего самого верхнего окна. Когда не самое верхнее окно сделано самым верхним, находящиеся в его собственности окна также делаются самыми верхними. Его владельцы, однако, не изменяются. Если ни флажок SWP_NOACTIVATE ни флажок SWP_NOZORDER не установлен (то есть, когда запросы прикладной программы, чтобы одновременно было активизировано окно, а его позиция в Z-последовательности изменена), значение, установленное в hWndInsertAfter, используются только в следующих обстоятельствах:

  • Ни флажок HWND_TOPMOST ни флажок HWND_NOTOPMOST не установлен в hWndInsertAfter.
  • Окно, идентифицированное hWnd - не активное окно.

Прикладная программа не может активизировать неактивное окно без такого же обеспечения ему в верхней части Z-последовательности. Прикладная программа может изменять позицию активизированного окна в Z-последовательности без ограничений, или она может активизировать окно и затем переместить его в верхнюю часть самых верхних или не самых верхних окон. Самое верхнее окно больше не самое верхнее, если оно переустановлено в нижнюю часть (HWND_BOTTOM) Z-последовательности или после любого не самого верхнего окна. Когда самое верхнее окно сделано не самым верхним, его владельцы, и его находящиеся в собственности окна также делаются не самыми верхними окнами. Не самое верхнее окно может обладать самым верхним окном, но не наоборот. Любое окно (например, диалоговое окно), принадлежащее самому верхнему окну самостоятельно делается самым верхним окном, чтобы гарантировать, что все находящиеся в собственности окна становятся выше их владельца.

Смотри также
BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

Размещение и совместимость DeferWindowPos

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция DestroyWindow

(РазрушитьОкно)

Функция DestroyWindow уничтожает определенное окно. Функция посылает сообщения WM_DESTROY и WM_NCDESTROY окну, чтобы дезактивировать его и удалить фокус клавиатуры из него. Функция также уничтожает меню окна, очищает очередь потоков сообщений, уничтожает таймеры, удаляет монопольное использование буфера обмена и разрывает цепочку просмотра окон буфера обмена (если окно имеет наверху цепочку просмотров). Если определенное окно - родитель или владелец окон, DestroyWindow автоматически уничтожает связанные дочерние или находящиеся в собственности окна, когда она уничтожает окно владельца или родителя. Функция сначала уничтожает дочерние или находящиеся в собственности окна, и затем она уничтожает окно владельца или родителя. DestroyWindow также уничтожает немодальные диалоговые окна, созданные функцией CreateDialog.

Синтаксис

BOOL DestroyWindow
(
HWND hWnd // дескриптор для разрушения окна
);

Параметры

hWnd
Идентификатор окна, которое будет разрушено.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля. Если функция не выполняет задачу, возвращаемое значение нулевое. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.

Замечания
Поток не может использовать DestroyWindow, чтобы уничтожить окно, созданное другим потоком. Если разрушаемое окно - дочернее окно, которое не имеет стиля WS_EX_NOPARENTNOTIFY, сообщение WM_PARENTNOTIFY посылается родителю.

Смотри также
CreateDialog, CreateWindow, CreateWindowEx, WM_DESTROY, WM_NCDESTROY, WM_PARENTNOTIFY

Размещение и совместимость DestroyWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция EnableWindow

(ВключитьОкно)

Функция EnableWindow включает или отключает мышь и ввод с клавиатуры в определенном окне или элементе управления. Когда ввод заблокирован, окно не принимает ввод типа щелчков мыши и нажатий клавиш. Когда ввод включен, окно принимает всю вводимую информацию.

Синтаксис

BOOL EnableWindow
(
HWND hWnd, // дескриптор окна
BOOL bEnable // флажок для включения или отключения ввода информации
);

Параметры

hWnd
Идентификатор окна, которое будет включено или заблокировано.
bEnable Определяет, включено или отключено окно. Если этот параметр - ИСТИНА (TRUE), окно включено. Если параметр - ЛОЖЬ(FALSE), окно заблокировано.

Возвращаемые значения
Если окно было предварительно заблокировано, возвращаемое значение не ноль. Если окно предварительно не было заблокировано, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Если включенное состояние окна изменяется, посылается сообщение WM_ENABLE перед возвратом значения функцией EnableWindow. Если окно уже заблокировано, все его дочерние окна потенциально заблокированы, хотя они и не посылали сообщение WM_ENABLE. Окно должно быть включено прежде, чем оно может быть активизировано. Например, если прикладная программа отображает немодальное диалоговое окно и отключила его основное окно, то прикладная программа должна включить основное окно перед разрушением диалогового окна. Иначе, другое окно примет фокус клавиатуры и будет активизировано. Если дочернее окно заблокировано, это игнорируется, когда Windows пробует определить, которое окно должно принять сообщения мыши. По умолчанию, окно включено, когда оно создается. Чтобы создать окно, которое первоначально заблокировано, прикладная программа, может определить стиль WS_DISABLED в функции CreateWindow или CreateWindowEx. После того, как окно будет создано, прикладная программа может использовать EnableWindow, чтобы включить или отключить окно. Прикладная программа может использовать эту функцию, чтобы включить или отключить элемент управления в диалоговом окне. Заблокированный элемент управление не может принимать фокус клавиатуры, и при этом пользователь не может получить доступ к нему.

Смотри также
CreateWindow, CreateWindowEx, IsWindowEnabled, WM_ENABLE

Размещение и совместимость EnableWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция EndDeferWindowPos

(ОкончаниеЗадержкиПозиционированияОкна)

Функция EndDeferWindowPos одновременно модифицирует позицию и размер в одном или большем количестве окон в единственном цикле обновления экрана.

Синтаксис

BOOL EndDeferWindowPos
(
HDWP hWinPosInfo //дескриптор внутренней структуры
);

Параметры

hWinPosInfo
Идентифицирует структуру расположения составного окна, которая содержит информацию о размере и расположении для одного или большего количества окон. Эта внутренняя структура возвращается функцией BeginDeferWindowPos или самым последним обращением к функции DeferWindowPos.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция не выполняет задачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Функция EndDeferWindowPos посылает каждому окну, идентифицированному во внутренней структуре, сообщения WM_WINDOWPOSCHANGING и WM_WINDOWPOSCHANGED.

Смотри также
BeginDeferWindowPos, DeferWindowPos, WM_WINDOWPOSCHANGED, WM_WINDOWPOSCHANGING

Размещение и совместимость EndDeferWindowPos

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция EnumChildProc

(ПеречислениеДочернихПроцедур)

Функция EnumChildProc - функция повторного вызова определяемая прикладной программой, которая принимает дескрипторы дочернего окна в результате обращения к функции EnumChildWindows.

Синтаксис

BOOL CALLBACK EnumChildProc
(
HWND hwnd, // дескриптор дочернего окна
LPARAM lParam // значение, определяемое приложением
);

Параметры

hwnd
Идентифицирует дочернее окно родительского окна, определенного в EnumChildWindows.
lParam
Устанавливает значение, определяемое прикладной программой, данное в EnumChildWindows.

Возвращаемые значения.
Чтобы продолжать перечисление, функция повторного вызова должна возвратить значение ИСТИНА (TRUE); чтобы остановить перечисление, она должно возвратить значение ЛОЖЬ(FALSE).

Замечания
Функция повторного вызова может выполнять любую желаемую задачу. Прикладная программа должна зарегистрировать эту функцию повторного вызова, передавая ее адрес в EnumChildWindows. EnumChildProc - метка - заполнитель для имени функции определяемой прикладной программой.

Смотри также
EnumChildWindows

Размещение и совместимость EnumChildProc

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека определяемая пользователем
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе WNDENUMPROC


Функция EnumChildWindows

(ПеречислениеДочернихОкон)

Функция EnumChildWindows перечисляет дочерние окна, которые принадлежат определенному родительскому окну, в свою очередь, передавая дескриптор каждого дочернего окна в функцию повторного вызова, определяемую программой. Функция EnumChildWindows работает до тех пор, пока не будет перечислено последнее дочернее окно или функция повторного вызова не возвратит значение ЛОЖЬ (FALSE).

Синтаксис

BOOL EnumChildWindows
(
HWND hWndParent, // дескриптор родительского окна
WNDENUMPROC lpEnumFunc, // указатель на функцию обратного вызова
LPARAM lParam // значение, определяемое программой
);

Параметры

hWndParent
Идентифицирует родительское окно, чьи дочерние окна должны перечисляться.

lpEnumFunc
Указывает на определяемую программой функцию повторного вызова. Для получения дополнительной информации относительно функции повторного вызова, см. функцию повторного вызова EnumChildProc.

lParam
Устанавливает 32-разрядное, определяемое программой значение, которое будет передано в функцию повторного вызова.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Функция EnumChildWindows не перечисляет окна верхнего уровня, принадлежащие определенному окну, и при этом не перечисляет любые другие находящиеся в собственности окна. Если дочернее окно создало свои собственные дочерние окна, эта функция перечисляет также и эти окна. Дочернее окно, которое перемещено или снова установлено в Z-последовательности в течение процесса перечисления, будет перечислено правильно. Функция не перечисляет дочернее окно, которое разрушено перед перечислением или оно создано в ходе процесса перечисления. Эта функция более надежна, чем вызов в цикле функции GetWindow. Прикладная программа, которая вызывает GetWindow, чтобы выполнить эту задачу, рискует завязнуть в бесконечном цикле или в повторяющейся ссылке на дескриптор окна, которое было разрушено.

Смотри также
EnumChildProc, EnumThreadWindows, EnumWindows, GetWindow

Размещение и совместимость EnumChildWindows

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция EnumThreadWindows

(ПеречислениеПотоковОкон)

Функция EnumThreadWindows перечисляет все не дочерние окна, связанные с потоком, передавая дескриптор каждого окна, в свою очередь, в определенную прикладной программой функцию повторного вызова. EnumThreadWindows действует до тех пор, пока не перечислит последнее окно, или пока функция повторного вызова не возвратит значение ЛОЖЬ (FALSE). Чтобы перечислить дочерние окна отдельного окна, используйте функцию EnumChildWindows. Эта функция заменяет функцию EnumTaskWindows.

Синтаксис

BOOL EnumThreadWindows
(
DWORD dwThreadId, // идентификатор потока
WNDENUMPROC lpfn, // указатель на функцию возврата
LPARAM lParam // значение, определяемое прикладной программой
);

Параметры

dwThreadId
Идентифицирует поток, окна которого должны быть перечислены.
lpfn
Указывает на определенную прикладной программой функцию повторного вызова. Для получения дополнительной информации о функции повторного вызова, см. функцию повторного вызова EnumThreadWndProc.
lParam
Определяет 32-разрядное значение определенное прикладной программой, которое будет передано в функцию повторного вызова.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение отлично от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль.

Смотри также
EnumChildWindows, EnumThreadWndProc, EnumWindows

Размещение и совместимость EnumThreadWindows

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция EnumThreadWndProc

(ПеречислениеПроцедурПотоковОкон)

Функция EnumThreadWndProc - определяемая программой функция повторного вызова, которая принимает дескрипторы окна, связанные с потоком в результате обращения к функции EnumThreadWindows.

Синтаксис

BOOL CALLBACK EnumThreadWndProc
(
HWND hwnd, // дескриптор окна
LPARAM lParam // определяемое программой значение
);

Параметры

hwnd
Идентифицирует окно, связанное с потоком, определенным в функции EnumThreadWindows.

lParam
Устанавливает определяемое программой значение, данное в функции EnumThreadWindows.

Возвращаемые значения
Чтобы продолжать перечисление, функция повторного вызова должна возвратить значение ИСТИНА (TRUE); чтобы остановить перечисление, она должна возвратить - ЛОЖЬ (FALSE).

Замечания
Функция повторного вызова может выполнять любую желаемую задачу. Прикладная программа должна зарегистрировать эту функцию повторного вызова, передавая ее адрес в функцию EnumThreadWindows. EnumThreadWndProc - метка - заполнитель для определяемого программой имени функции.

Смотри также
EnumThreadWindows

Размещение и совместимость EnumThreadWndProc

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека Определяется пользователем
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе WNDENUMPROC


Функция EnumWindows

(ПеречислениеОкон)

Функция EnumWindows перечисляет все окна верхнего уровня на экране, передавая дескриптор каждого окна, в свою очередь, в определяемую программой функцию повторного вызова. EnumWindows действует до тех пор, пока последнее окно верхнего уровня не будет перечислено, или пока функция повторного вызова не возвратит значение ЛОЖЬ (FALSE).

Синтаксис

BOOL EnumWindows
(
WNDENUMPROC lpEnumFunc, // указатель на функцию обратного вызова
LPARAM lParam // определяемое программой значение
);

Параметры

lpEnumFunc
Указывает на определяемую программой функцию повторного вызова. Для получения дополнительной информации, см. функцию повторного вызова EnumWindowsProc.
lParam
Устанавливает 32-разрядное, определяемое программой значение, которое будет передано в функцию повторного вызова.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Функция EnumWindows не перечисляет дочерние окна. Эта функция более надежна, чем вызов функции GetWindow в цикле. Прикладная программа, которая вызывает GetWindow, чтобы выполнить эту задачу, рискует попасть в бесконечный цикл или на ссылку на дескриптор окна, которое было разрушено.

Смотри также
EnumChildWindows, EnumWindowsProc, GetWindow

Размещение и совместимость EnumWindows

Windows NT				Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция EnumWindowsProc

(ПеречислениеОконныхПроцедур)

Функция EnumWindowsProc - определяемая программой функция повторного вызова, которая принимает дескрипторы окна верхнего уровня в результате вызова функции EnumWindows или EnumDesktopWindows.

Синтаксис

BOOL CALLBACK EnumWindowsProc
(
HWND hwnd, // дескриптор родительского окна
LPARAM lParam // определяемое программой значение
);

Параметры

hwnd
Идендификатор окна верхнего уровня lParam
Устанавливает определяемое программой значение передаваемое в EnumWindows или EnumDesktopWindows.

Возвращаемые значения
Чтобы продолжить перечисление, функция повторного вызова должна возвратить значение ИСТИНА (TRUE); чтобы остановить перечисление, она должна возвратить - ЛОЖЬ (FALSE).

Замечания
Функция повторного вызова может выполнять любую желаемую задачу. Прикладная программа должна зарегистрировать эту функцию повторного вызова, передавая адрес в EnumWindows или EnumDesktopWindows. EnumWindowsProc - метка - заполнитель для определяемого программой имени функции. Тип WNDENUMPROC - указатель на функцию EnumWindowsProc.

Смотри также
EnumWindows, EnumDesktopWindows

Размещение и совместимость EnumWindowsProc

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека определяется пользователем
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе WNDENUMPROC

 

Функция FindWindow

(ПоискОкна)

Функция FindWindow разыскивает данные о дескрипторе окна верхнего уровня, чье имя класса и имя окна соответствуют определенным строкам. Эта функция не ищет дочерние окна.

Синтаксис

HWND FindWindow
(
LPCTSTR lpClassName, // указатель на имя класса
LPCTSTR lpWindowName // указатель на имя окна
);

Параметры

lpClassName
Указывает на строку с нулевым символом в конце, которая определяет имя класса или - атом, который идентифицирует строку имени класса. Если этот параметр - атом, он должен быть общим атомом, созданным предыдущим вызовом функции GlobalAddAtom. Атом - это 16-разрядное значение, в котором должно быть помещено в младшем слове lpClassName; старшее слово должно быть нулевое.
lpWindowName
Указывает на строку с нулевым символом в конце, которая определяет имя окна (заголовок окна). Если этот параметр - ПУСТО (NULL), полное соответствие имени окна.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение - дескриптор окна, которое имеет определенное имя класса и имя окна. Если функция терпит неудачу, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.

Смотри также
EnumWindows, FindWindowEx, GetClassName, GlobalAddAtom

Размещение и совместимость FindWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется


Функция FindWindowEx

(ПоискОкнаУлучшенная) [Не поддерживается в Windows NT]

Функция FindWindowEx отыскивает данные о дескрипторе окна, имя класса и имя окна которого соответствуют определенным строкам. Функция поиска дочерних окон начинается с первого до последнего заданного дочернего окна.

Синтаксис

HWND FindWindowEx
(
HWND hwndParent, // дескриптор родительского окна
HWND hwndChildAfter, // дескриптор дочернего окна
LPCTSTR lpszClass, // указатель имени класса
LPCTSTR lpszWindow // указатель имени окна
);

Параметры

hwndParent
Идентифицирует родительское окно, чьи дочерние окна должны быть найдены. Если hwndParent - ПУСТО (NULL), функция использует окно рабочего стола как родительское окно. Функция ищет среди окон, которые являются дочерними окнами рабочего стола.
hwndChildAfter
Идентифицирует дочернее окно. Поиск начинается со следующего дочернего окна в Z - последовательности. hwndChildAfter должен быть прямое дочернее окно hwndParent, а не простое порожденное окно. Если hwndChildAfter - ПУСТО (NULL), поиск начинается с первого дочернего окна определенного параметром hwndParent. Обратите внимание, что, если и hwndParent и hwndChildAfter - ПУСТО (NULL), функция ищет все окна верхнего уровня.
lpszClass
Указывает на строку с нулевым символом в конце, которая определяет имя класса или - атом, который идентифицирует строку имени класса. Если этот параметр - атом, он должен быть общий атом, созданный предыдущим вызовом к функции GlobalAddAtom. Атом, 16-разрядное значение, в котором должно быть размещено в младшей части слова - lpszClass; старшее слово должно быть нулевое.
lpszWindow
Указывает на строку с нулевым символом в конце, которая определяет имя окна (заголовок окна). Если этот параметр ПУСТО (NULL), имена всех окон соответствующие.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна, которое имеет определенный класс и имена окон. Если функция потерпит неудачу, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.

Смотри также
EnumWindows, FindWindow, GetClassName, GlobalAddAtom

Размещение и совместимость FindWindowEx

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetClientRect

(ПолучитьРабочуюОбласть)

Функция GetClientRect извлекает координаты рабочей области окна. Рабочие координаты определяют левый верхний и нижний правый углы рабочей области. Поскольку рабочие координаты определены относительно левого верхнего угла рабочей области окна, координаты левого верхнего угла - (0,0).

Синтаксис

BOOL GetClientRect
(
HWND hWnd, // дескриптор окна
LPRECT lpRect // адрес структуры рабочих координат
);

Параметры

hWnd
Идентифицирует окно, рабочие координаты которого должны быть возвращены.
lpRect
Указывает на структуру RECT, которая принимает рабочие координаты. Левые и верхние элементы - нулевые. Правые и нижние элементы содержат ширину и высоту окна.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля. Если функция потерпит неудачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Смотри также
GetWindowRect, RECT

Размещение и совместимость GetClientRect

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetDesktopWindow

(ПолучитьОкноРабочегоСтола)

Функция GetDesktopWindow возвращает значение дескриптора окна рабочего стола Windows. Окно рабочего стола покрывает весь экран. Окно рабочего стола является областью, на верхней части которой изображены все значки и другие окна.

Синтаксис

HWND GetDesktopWindow(VOID)

Параметры
У этой функции нет параметров.

Возвращаемые значения
Возвращаемое значение - дескриптор окна рабочего стола.

Смотри также
GetWindow

Размещение и совместимость GetDesktopWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция GetForegroundWindow

(ПолучитьПриоритетноеОкно)

Функция GetForegroundWindow возвращает значение дескриптора приоритетного окна (окна, с которым пользователь в настоящее время работает). Система присваивает немного бо-лее высокий приоритет потоку, который создает приоритетное окно, чем тот, который она дает другим потокам.

Синтаксис

HWND GetForegroundWindow(VOID)

Параметры
У этой функции нет параметров.

Возвращаемые значения
Возвращаемое значение - дескриптор приоритетного окна.

Смотри также
SetForegroundWindow

Размещение и совместимость GetForegroundWindow

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetLastActivePopup

(ПолучитьПоследнееАктивноеВыскакивающееОкно)

Функция GetLastActivePopup определяет, какое самое последнее выскакивающее окно, принадлежащее заданному окну, было активно.

Синтаксис

HWND GetLastActivePopup
(
HWND hWnd // дескриптор окна владельца
);

Параметры

hWnd
Идентификатор окна владельца.

Возвращаемые значения
Возвращаемое значение идентифицирует самое последнее, активное, выскакивающее окно. Возвращаемое значение является тем же самым, что и параметр hWnd, если выполнено какое-либо из следующих условий:

  • Окно, идентифицированное hWnd, было активно самым последним.
  • Окно, идентифицированное hWnd, не имеет каких-либо выскакивающих окон.
  • Окно, идентифицированное hWnd, не является окном верхнего уровня или оно принадле-жит другому окну.

Смотри также
AnyPopup, ShowOwnedPopups

Размещение и совместимость GetLastActivePopup

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция GetNextWindow

(ПолучитьСледующееОкно)

Функция GetNextWindow отыскивает данные о дескрипторе следующего или предыдущего окна в Z - последовательности. Следующее окно - ниже заданного окна; предыдущее окно выше. Если заданное окно - самое верхнее окно, функция отыскивает дескриптор следующего (или пре-дыдущего) самого верхнего окна. Если определяемое окно - окно верхнего уровня, функция отыскивает дескриптор следующего (или предыдущего) окна верхнего уровня. Если определяемое окно - дочернее окно, функция ищет дескриптор следующего (или предыдущего) дочернего окна.

Синтаксис

HWND GetNextWindow
(
HWND hWnd, // дескриптор текущего окна
UINT wCmd // флаг направления
);

Параметры

hWnd
Идентифицирует окно. Найденный дескриптор окна, который относится к этому окну, основан на значении параметра wCmd.

wCmd
Определяет, возвращает ли функция дескриптор следующего окна или предыдущего окна. Этот параметр может быть любым из следующих значений:

  • GW_HWNDNEXT - Возвращает дескриптор окна ниже данного окна.
  • GW_HWNDPREV - Возвращает дескриптор окна выше данного окна.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор следующего (или предыдущего) окна. Если нет никакого следующего (или предыдущего) окна, возвращаемое значение - ПУСТО (NULL). Чтобы получить расширенную информацию об ошибках, вызовите GetLastError.

Замечания<
Использование этой функции точно такое же, как вызов функции GetWindow с установленным флажком GW_HWNDNEXT или GW_HWNDPREV.

Смотри также
GetTopWindow

Размещение и совместимость GetNextWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetParent

(ПолучитьРодителя)

Функция GetParent находит дескриптор родительского окна заданного дочернего окна.

Синтаксис

HWND GetParent
(
HWND hWnd // дескриптор дочернего окна
);

Параметры

hWnd
Идентифицирует окно, дескриптор родительского окна которого должен быть найден.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение - дескриптор родительского окна. Если у окна нет родительского окна, возвращаемое значение - ПУСТО (NULL). Чтобы получить более подробную информацию об ошибке, вызовите GetLastError.

Смотри также
SetParent

Размещение и совместимость GetParent

Windows NT				Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetTopWindow

(ПолучитьВерхнееОкно)

Функция GetTopWindow исследует Z - последовательность дочерних окон, связанных с определенным родительским окном и возвращает обратно дескриптор дочернего окна с верха Z - последовательности.

Синтаксис

HWND GetTopWindow
(
HWND hWnd // дескриптор родительского окна
);

Параметры

hWnd Идентифицирует родительское окно, дочерние окна которого должны быть проверены. Если этот параметр - ПУСТО (NULL), функция возвращает дескриптор окна с верха Z - последовательности.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор дочернего окна наверху Z - последовательности. Если заданное окно не имеет дочерних окон, возвращаемое значение - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, используйте функцию GetLastError.

Смотри также
GetNextWindow, GetWindow

Размещение и совместимость GetTopWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetWindow

(ПолучитьОкно)

Функция GetWindow отыскивает дескриптор окна, который имеет определенное отношение (Z - последовательность или владелец) к заданному окну.

Синтаксис

HWND GetWindow
(
HWND hWnd, // дескриптор первоначального окна
UINT uCmd // флажок отношения
);

Параметры

hWnd
Идентифицирует окно. Отыскивает дескриптор окна, относящийся к этому окну, основанному на значении параметра uCmd.

uCmd
Определяет отношение между определяемым окном и окном, чей дескриптор должен быть найден. Этот параметр может быть одним из следующих значений:

  • GW_CHILD - Найденный дескриптор идентифицирует дочернее окно наверху Z - последовательности, если определяемое окно - родительское окно; иначе, найденный дескриптор значение ПУСТО (NULL).Функция проверяет только дочерние окна заданного окна. Она не проверяет окна - потомки.
  • GW_HWNDFIRST - Найденный дескриптор идентифицирует окно того же самого типа, которое является самым высоким в Z - последовательности. Если определяемое окно - самое верхнее окно, дескриптор идентифицирует самое верхнее окно, которое является самым высоким в Z - последовательности. Если определяемое окно - окно верхнего уровня, дескриптор идентифицирует окно верхнего уровня, которое является самым высоким в Z - последовательности. Если определенное окно - дочернее окно, дескриптор идентифицирует сестринское окно, которое является самым высоким в Z - последовательности.
  • GW_HWNDLAST - Найденный дескриптор идентифицирует окно того же самого типа, который является самым низким в Z - последовательности. Если определяемое окно - самое верхнее окно, дескриптор идентифицирует самое верхнее окно, которое является самым низким в Z - последовательности. Если определяемое окно - окно верхнего уровня, дескриптор идентифицирует окно верхнего уровня, которое является самым низким в Z - последовательности. Если определяемое окно - дочернее окно, дескриптор идентифицирует сестринское окно, которое является самым низким в Z - последовательности.
  • GW_HWNDNEXT - Найденный дескриптор идентифицирует окно ниже определяемого окна в Z - последовательности. Если определяемое окно - самое верхнее окно, дескриптор идентифицирует самое верхнее окно ниже определяемого окна. Если определяемое окно - окно верхнего уровня, дескриптор идентифицирует окно верхнего уровня ниже определяемого окна. Если определяемое окно - дочернее окно, дескриптор идентифицирует сестринское окно ниже определяемого окна.
  • GW_HWNDNEXT - Найденный дескриптор идентифицирует окно ниже определяемого окна в Z - последовательности. Если определяемое окно - самое верхнее окно, дескриптор идентифицирует самое верхнее окно ниже определяемого окна. Если определяемое окно - окно верхнего уровня, дескриптор идентифицирует окно верхнего уровня ниже определяемого окна. Если определяемое окно - дочернее окно, дескриптор идентифицирует сестринское окно ниже определяемого окна.
  • GW_OWNER - Найденный дескриптор идентифицирует окно владельца определяемого окна, если таковой имеется.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна. Если окно с заданным отношением к определяемому окну не существует, возвращаемое значение - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.

Смотри также
GetActiveWindow, GetNextWindow, GetTopWindow

Размещение и совместимость GetWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetWindowPlacement

(ПолучитьРазмещениеОкна)

Функция GetWindowPlacement разыскивает данные об установке внешнего вида и позиции восстановления, свертывания и развертывания определяемого окна.

Синтаксис

BOOL GetWindowPlacement
(
HWND hWnd, // дескриптор окна
WINDOWPLACEMENT *lpwndpl // адрес структуры для расположения данных
);

Параметры

hWnd
Идентифицирует окно.
lpwndpl
Указывает на структуру WINDOWPLACEMENT, которая принимает информацию о позиции и состоянии вида. Перед вызовом GetWindowPlacement, установите элемент длины (length) структуры WINDOWPLACEMENT как sizeof (WINDOWPLACEMENT). GetWindowPlacement потерпит неудачу, если lpwndpl-> длина (length) установлена не правильно.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля. Если функция потерпит неудачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Элемент флажки (flags) WINDOWPLACEMENT, найденный этой функцией - всегда нуль. Если окно, идентифицированное параметром hWnd, развернуто, элемент showCmd - SW_SHOWMAXIMIZED. Если окно свернуто(минимизировано), showCmd - SW_SHOWMINIMIZED. Иначе, он - SW_SHOWNORMAL. Элемент длины(length) WINDOWPLACEMENT должен быть установлен в sizeof (WINDOWPLACEMENT). Если этот элемент установлен не правильно, функция возвратит значение ЛОЖЬ (FALSE).

Смотри также
SetWindowPlacement,WINDOWPLACEMENT

Размещение и совместимость GetWindowPlacement

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetWindowRect

(ПолучитьОкноПрямоугольника)

Функция GetWindowRect отыскивает размеры рамки ограничивающей прямоугольник определяемого окна. Размеры даны в экранных координатах, которые расположены относительно левого верхнего угла экрана.

Синтаксис

BOOL GetWindowRect
(
HWND hWnd, // дескриптор окна
LPRECT lpRect // адрес структуры для координат окна
);

Параметры

hWnd
Идентифицирует окно.

lpRect
Указывает на структуру RECT которая принимает экранные координаты левых верхних и нижних правых углов окна.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Для получения подробной информации об ошибке вызовите функцию GetLastError.

Смотри также
GetClientRect, RECT

Размещение и совместимость GetWindowRect

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция GetWindowText

(ПолучитьТекстОкна)

Функция GetWindowText копирует текст строки заголовка определяемого окна (если оно имеет ее) в буфер. Если определяемое окно - элемент управления, текст элемента управления копируется.

Синтаксис

int GetWindowText
(
HWND hWnd, // дескриптор окна или элемента управления с текстом
LPTSTR lpString, // адрес буфера для текста
int nMaxCount // максимальное число символов для копирования
);

Параметры

hWnd
Идентифицирует окно или элемент управления, содержащее текст

lpString
Указывает на буфер, который примет текст.

nMaxCount
Устанавливает максимальное число символов для копирования в буфер. Если текст превышает это ограничение, он усекается.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - длина, в символах, скопированной строки, не, включая символа конца строки (ноль-терминатора). Если у окна нет никакой строки заголовка или текста, если строка заголовка пустая или, если дескриптор окна или элемента управления недопустимы, возвращаемое значение нулевое. Чтобы получать расширенные данные об ошибках, вызовите GetLastError. Эта функция не может отыскать текст элемента для редактирования в другой прикладной программе.

Замечания
Эта функция заставляет послать сообщение WM_GETTEXT определяемому окну или элементу управления. Эта функция не может возвращать текст элемента для редактирования в другую прикладную программу.

Смотри также
GetWindowTextLength,SetWindowText, WM_GETTEXT

Размещение и совместимость GetWindowText

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется


Функция GetWindowTextLength

(ПолучитьДлинуТекстаВОкне)

Функция GetWindowTextLength возвращает обратно длину, в символах, текста строки заголовка определяемого окна (если окно имеет область заголовка). Если определяемое окно - элемент управления, функция возвращает обратно длину текста внутри элемента управления.

Синтаксис

int GetWindowTextLength
(
HWND hWnd // дескриптор окна или панели управления с текстом
);

Параметры

hWnd
Идентифицирует окно или элемент управления.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - длина, в символах, текста. При известных условиях, это значение может фактически быть большим, чем длина текста. Для получения дополнительной информации, см. следующий раздел Замечаний. Если окно не имеет никакого текста, возвращаемое значение нулевое. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.

Замечания
Эта функция вынуждает послать сообщение WM_GETTEXTLENGTH определяемому окну или элементу управления. При известных условиях, функция GetWindowTextLength может возвращать значение, которое является большим, чем фактическая длина текста. Это происходит с некоторыми смесями ANSI и Unicode и благодаря операционной системе, которая допускает возможное существование символов DBCS внутри текста. Возвращаемое значение, однако, будет всегда, по крайней мере, такого размера, как фактическая длина текста; Вы можете, таким образом, всегда использовать эту функцию, чтобы вести буферное распределение. Это поведение может происходить, когда прикладная программа использует и функции ANSI и общие диалоги, которые использует Unicode. Это может также происходить, когда прикладная программа использует разновидность ANSI GetWindowTextLength с окном, оконная процедура которого - Unicode, или разновидность Unicode с окном, оконная процедура которого - ANSI. Чтобы получить точную длину текста, используйте сообщения WM_GETTEXT, LB_GETTEXT, или CB_GETLBTEXT, или функцию GetWindowText.

Смотри также
CB_GETLBTEXT, GetWindowText, LB_GETTEXT, SetWindowText, WM_GETTEXT, WM_GETTEXTLENGTH

Размещение и совместимость GetWindowTextLength

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется

 

Функция GetWindowThreadProcessId

(ПолучитьИдентификаторПотокаСоздавшегоОкно)

Функция GetWindowThreadProcessId возвращает обратно идентификатор потока, который создал определяемое окно и, необязательно, идентификатор процесса, который создал окно. Эта функция заменяет функцию GetWindowTask.

Синтаксис

DWORD GetWindowThreadProcessId
(
HWND hWnd, // дескриптор окна
LPDWORD lpdwProcessId // адрес переменной для идентификатора процесса
);

Параметры

hWnd
Идентифицирует окно.
lpdwProcessId
Указывает на 32-разрядное значение, которое принимает идентификатор процесса. Если этот параметр - не, ПУСТО (NULL), GetWindowThreadProcessId копирует идентификатор процесса в 32-разрядное значение; иначе, она этого не делает.

Возвращаемые значения
Возвращаемое значение - идентификатор потока, который создает окно.

Замечания
Эта функция заменяет функцию GetWindowTask версии 3.x Windows.

Размещение и совместимость GetWindowThreadProcessId

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция IsChild

(ЭтоДочернееОкно)

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

Синтаксис

BOOL IsChild
(
HWND hWndParent, // дескриптор родительского окна
HWND hWnd // дескриптор окна для проверки
);

Параметры

hWndParent
Идентифицирует родительское окно.
hWnd
Идентифицирует окно, которое будет проверяться.

Возвращаемые значения
Если окно - дочернее или порожденное окно заданного родительского окна, возвращаемое значение отлично от нуля. Если окно - не дочернее или порожденное окно заданного родительского окна, возвращаемое значение нулевое.

Смотри также
IsWindow, SetParent

Размещение и совместимость IsChild

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция IsIconic

(ЭтоПиктограмма)

Функция IsIconic определяет, не свернуто ли (минимизировано) определяемое окно (до вида пиктограммы).

Синтаксис

BOOL IsIconic
(
HWND hWnd // дескриптор окна
);

Параметры

hWnd
Идентифицирует окно.

Возвращаемые значения
Если окно в виде пиктограммы, возвращаемое значение отлично от нуля. Если окно не в виде пиктограммы, возвращаемое значение - ноль.

Смотри также
IsZoomed

Размещение и совместимость IsIconic

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция IsWindow

(ЭтоОкно)

Функция IsWindow определяет, идентифицирует ли дескриптор определяемого окна существующее окно.

Синтаксис

BOOL IsWindow
(
HWND hWnd // дескриптор окна
);

Параметры

hWnd
Устанавливает дескриптор окна.

Возвращаемые значения
Если дескриптор окна идентифицирует существующее окно, возвращаемое значение отлично от нуля. Если дескриптор окна не идентифицирует существующее окно, возвращаемое значение нулевое.

Смотри также
IsWindowEnabled, IsWindowVisible

Размещение и совместимость IsWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция IsWindowUnicode

(ЭтоОкноUnicode)

Функция IsWindowUnicode устанавливает, является ли определяемое окно родным окном Unicode.

Синтаксис

BOOL IsWindowUnicode
(
HWND hWnd // Дескриптор окна
);

Параметры hWnd
Идентифицирует окно.

Возвращаемые значения
Если окно - родное окно Unicode, возвращаемое значение отлично от нуля. Если окно - не, родное окно Unicode, возвращаемое значение нулевое.

Замечания
Система автоматически делает двухстороннюю трансляцию (Unicode в ANSI-ASCII) для сообщений окна. Например, если сообщение окна ANSI-ASCII послано окну с UNICODE, система преобразует это сообщение в сообщение Unicode перед вызовом оконной процедуры. Система вызывает функцию IsWindowUnicode, чтобы определить, надо ли преобразовывать сообщение. Когда эта функция возвращает значение ЛОЖЬ(FALSE), это окно - родное окно ANSI-ASCII.

Размещение и совместимость IsWindowUnicode

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека Определяет пользователь
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе WNDENUMPROC


Функция IsWindowVisible

(ЭтоОкноВидимое)

Функция IsWindowVisible находит данные о состоянии видимости заданного окна.

Синтаксис

BOOL IsWindowVisible
(
HWND hWnd // дескриптор окна
);

Параметры

hWnd
Идентифицирует окно.

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

Замечания
Состояние видимости окна обозначено битом стиля WS_VISIBLE. Когда стиль WS_VISIBLE установлен, окно видимое и последующая прорисовка внутри него отображается до тех пор, пока окно имеет стиль WS_VISIBLE. Любая прорисовка окна со стилем WS_VISIBLE не будет отображаться, если окно затенено другими окнами или усечено его родительским окном.

Смотри также
ShowWindow

Размещение и совместимость IsWindowVisible

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция IsZoomed

(ОноУвеличено)

Функция IsZoomed определяет, развернуто ли окно.

Синтаксис

BOOL IsZoomed
(
HWND hWnd // дескриптор окна
);

Параметры

hWnd
Идентифицирует окно.

Возвращаемые значения
Если окно изменено в масштабе, возвращаемое значение отлично от нуля. Если окно не изменено в масштабе, возвращаемое значение нулевое.

Смотри также
IsIconic

Размещение и совместимость IsZoomed

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция 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

Размещение и совместимость MoveWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция OpenIcon

(ОткрытьПиктограмму)

Функция OpenIcon восстанавливает свернутое (иконизированное) окно в его предыдущих размерах и позиции; затем она активизирует его.

Синтаксис

BOOL OpenIcon
(
HWND hWnd // дескриптор окна
);

Параметры

hWnd
Идентифицирует окно, которое будет восстановлено и активизировано.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
Функция OpenIcon посылает данному окну сообщение WM_QUERYOPEN.

Смотри также
CloseWindow, IsIconic, ShowWindow.

Размещение и совместимость OpenIcon

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция SetForegroundWindow

(УстановитьПриоритетноеОкно)

Функция SetForegroundWindow переводит поток, который создал определяемое окно в приоритетный режим и активизирует окно. Ввод с клавиатуры направлен в окно, а различные визуальные ориентиры изменяются для пользователя.

Синтаксис

BOOL SetForegroundWindow
(
HWND hWnd // дескриптор окна, которое переводится в приоритетный режим
);

Параметры

hWnd
Идентифицирует окно, которое должно быть активизировано и переведено в приоритетный режим.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

Замечания
Приоритетное окно - окно наверху Z-последовательности. Это - окно, с которым пользователь работает. В среде приоритетной многозадачности, Вы должны вообще дать возможность управления пользователю, окно которого является приоритетным окном. Однако прикладная программа может вызывать SetForegroundWindow, если требуется перевести себя в активный режим, чтобы отобразить критическую ошибку или информацию, которая требует непосредственного внимания пользователя. Хороший пример - это отладчик, когда он обнаруживает контрольную точку останова программы. Система назначает немного более высокий приоритет потоку, который создал приоритетное окно, чем она делает это по отношению к другим потокам.

Смотри также
GetForegroundWindow

Размещение и совместимость SetForegroundWindow

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


 

Функция SetParent

(УстановитьРодителя)

Функция SetParent заменяет родительское окно заданного дочернего окна.

Синтаксис

HWND SetParent
(
HWND hWndChild, // Дескриптор окна, родитель которого изменяется
HWND hWndNewParent // Дескриптор нового родительского окна
);

Параметры

hWndChild
Идентифицирует дочернее окно.
hWndNewParent
Идентифицирует новое родительское окно. Если этот параметр - ПУСТО (NULL), окно рабочего стола становится новым родительским окном.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор предыдущего родительского окна. Если функция не выполняет задачу, возвращаемое значение - ПУСТО (NULL). Чтобы получать дополнительные данные об ошибках, вызовите GetLastError.

Замечания
Прикладная программа может использовать функцию SetParent, чтобы установить родительское окно выскакивающего, перекрывающего или дочернего окна. Новое родительское окно и дочернее окно должны принадлежать той же самой прикладной программе. Если окно, идентифицированное параметром hWndChild видимое, Windows выполняет соответствующее изменение и перерисовку.

Смотри также
GetParent

Размещение и совместимость SetParent

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция SetWindowLong

(УстановкаОкнаСДальнимСмещением)

Функция SetWindowLong изменяет атрибуты определяемого окна. Функция также устанавливает 32-разрядное (длинное) значение при заданном смещении в дополнительном пространстве памяти об окне.

Синтаксис

LONG SetWindowLong
(
HWND hWnd, // дескриптор окна
int nIndex, // значение смещения, которое устанавливается
LONG dwNewLong //новое значение
);

Параметры

hWnd
Идентифицирует окно и, косвенно, класс, которому окно принадлежит.
nIndex
Определяет значение смещения, отсчитываемое от нуля, которое будет установлено. Допустимые значения находятся в диапазоне от нуля до числа байтов дополнительного пространства в памяти, минус 4; например, если бы Вы установили 12 или большее количество байтов памяти дополнительного пространства, значение 8 было бы индексом к третьему 32-разрядному целому числу. Чтобы установить любое другое значение, определите одно из следующих значений:

  • GWL_EXSTYLE - Устанавливает новый расширенный стиль окна.
  • GWL_STYLE - Устанавливает новый стиль окна.
  • GWL_WNDPROC - Устанавливает новый адрес для оконной процедуры.
  • GWL_HINSTANCE - Устанавливает новый дескриптор экземпляра прикладной программы.
  • GWL_ID - Устанавливает новый идентификатор окна.
  • GWL_USERDATA - Устанавливает 32-разрядное значение, связанное с окном. Каждое окно имеет соответствующее 32-разрядное значение, предназначенное для использования прикладной программой, которая создала окно.

Следующие значения также доступны, когда параметр hWnd идентифицирует диалоговое окно:

  • DWL_DLGPROC - Устанавливает новый адрес процедуры диалогового окна.
  • DWL_MSGRESULT - Устанавливает возвращаемое значение сообщения, обработанного в процедуре диалогового окна.
  • DWL_USER - Устанавливает новую дополнительную информацию, которая является частной для прикладной программы, типа дескрипторов или указателей.

dwNewLong
Устанавливает восстановленное значение.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - предыдущее значение заданного 32-разрядного целого числа. Если функция не выполняет задачу, возвращаемое значение нулевое. Чтобы получать расширенные данные об ошибках, вызовите GetLastError. Если предыдущее значение заданного 32-разрядного целого числа нулевое, и функция завершается успешно, возвращаемое значение нулевое, но функция не очищает последние данные об ошибках. Это затрудняет определение успеха или сбоя. Чтобы бороться с этим, Вы должны очистить последние данные об ошибках, вызывая SetLastError (0) перед вызовом SetWindowLong. Тогда, функциональный сбой будет обозначен возвращаемым значением нуля и результата GetLastError, который является отличным от нуля.

Замечания
Функция SetWindowLong не выполняет задачу, если окно, заданное параметром hWnd не принадлежит тому же самому процессу, что и поток вызова. Если Вы используете функцию SetWindowLong и индекс GWL_WNDPROC, чтобы заменить оконную процедуру, оконная процедура должна соответствовать рекомендациям, заданным в описании функции повторного вызова WindowProc. Вызов SetWindowLong с индексом GWL_WNDPROC создает подкласс класса окна, которое используется, чтобы создать окно. Прикладная программа не должна быть подклассом окна, созданного другим процессом. Функция SetWindowLong создает подкласс окна, заменяя оконную процедуру, связанную с отдельным окном, вынуждая Windows вызвать новую оконную процедуру вместо предыдущей. Прикладная программа должна передавать любые сообщения, не обработанные новой оконной процедурой к предыдущей оконной процедуре, вызывая CallWindowProc. Это позволяет прикладной программе создавать цепочку оконных процедур. Резервное дополнительное пространство в памяти, устанавливает значение отличное от нуля в элементе cbWndExtra структуры WNDCLASS, используемой с функцией RegisterClass. Вы не должны вызвать SetWindowLong с индексом GWL_HWNDPARENT, чтобы заменить родителя дочернего окна. Взамен, используйте функцию SetParent.

Смотри также
CallWindowProc, GetWindowLong, GetWindowWord, RegisterClass, SetParent, SetWindowWord, WindowProc, WNDCLASS.

Размещение и совместимость SetWindowLong

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется


Функция SetWindowPlacement

(УстановкаРазмещенияОкна)

Функция SetWindowPlacement устанавливает в состояние показа и восстанавливает, свертывает и развертывает позиции определяемого окна.

Синтаксис

BOOL SetWindowPlacement
(
HWND hWnd, // дескриптор окна
CONST WINDOWPLACEMENT *lpwndpl // адрес структуры с данными о
// позиции
);

Параметры

hWnd
Идентифицирует окно.
lpwndpl
Указывает на структуру WINDOWPLACEMENT, которая устанавливает новое состояние показа и позиции окна. Перед вызовом SetWindowPlacement, установите элемент длины (length ) структуры WINDOWPLACEMENT в значение sizeof (WINDOWPLACEMENT). SetWindowPlacement не выполняет задачу, если lpwndpl-> длина (length ) установлена не правильно.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
Элемент длины (length) WINDOWPLACEMENT должен быть установлен в sizeof (WINDOWPLACEMENT). Если этот элемент установлен не правильно, функция возвращает значение ЛОЖЬ(FALSE).

Смотри также
GetWindowPlacement, WINDOWPLACEMENT

Размещение и совместимость SetWindowPlacement

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция SetWindowPos

(УстановитьПозициюОкна)

Функция SetWindowPos изменяет размер, позицию и Z-последовательность дочернего, выскакивающего или верхнего уровня окна. Дочерние, выскакивающие и верхнего уровня окна размещаются по порядку согласно их появлению на экране. Самое верхнее окно принимает самый высокий ранг и становится первым окном в Z-последовательности.

Синтаксис

BOOL SetWindowPos
(
HWND hWnd, // дескриптор окна
HWND hWndInsertAfter, // дескриптор порядка размещения
int X, // позиция по горизонтали
int Y, // позиция по вертикали
int cx, // ширина
int cy, // высота
UINT uFlags // флажки позиционирования окна
);

Параметры

hWnd
Идентифицирует окно.
hWndInsertAfter
Идентифицирует окно, которое предшествует установленному окну в Z-последовательности. Этот параметр должен быть дескриптор окна или одно из следующих значений:

  • HWND_BOTTOM - Помещает окно внизу Z-последовательности. Если параметр hWnd идентифицирует самое верхнее окно, окно теряет своё самое верхнее состояние и помещается внизу всех других окон.
  • HWND_NOTOPMOST - Помещает окно перед всеми не в самыми верхними окнами (то есть позади всех самых верхних окон). Этот флажок не имеет никакого влияния, если окно - уже не самое верхнее окно.
  • HWND_TOP - Помещает окно наверху Z-последовательности.
  • HWND_TOPMOST - Помещает окно перед не самыми верхними окнами. Окно сохраняет свою самую верхнюю позицию даже тогда, когда оно неактивное.

Для получения дополнительной информации о том, как использовать этот параметр, см. следующий раздел Замечания.
X
Устанавливает новую позицию с левой стороны окна.
Y
Устанавливает новую позицию верхней части окна.
cx
Устанавливает новую ширину окна, в пикселях.
cy
Устанавливает новую высоту окна, в пикселях.
uFlags
Определяет флажки, устанавливающие размеры и позиционирование окна. Этот параметр может быть комбинацией следующих значений:

  • SWP_DRAWFRAME - Выводит рамку (определенную в описании класса окна) вокруг окна.
  • SWP_FRAMECHANGED - Посылает сообщение WM_NCCALCSIZE окну, даже тогда, когда размер окна не изменяется. Если этот флажок не установлен, WM_NCCALCSIZE посылается только тогда, когда размер окна изменяется.
  • SWP_HIDEWINDOW - Скрывает окно.
  • SWP_NOACTIVATE - Не активизирует окно. Если этот флажок не установлен, окно активизируется и перемещается в верхнюю часть или самой верхней, или не самой верхней группы (в зависимости от установки параметра hWndInsertAfter).
  • SWP_NOCOPYBITS - Сбрасывает все содержание рабочей области. Если этот флажок не установлен, допустимое содержание рабочей области сохраняется и копируется обратно в рабочую область после того, как окно установлено по размеру или переустановлено.
  • SWP_NOMOVE - Сохраняет текущую позицию (игнорирует X и Y параметры).
  • SWP_NOOWNERZORDER - Не изменяет позицию окна владельца в Z-последовательности.
  • SWP_NOREDRAW - Не перерисовывает изменения. Если этот флажок установлен, то не происходит никакой перерисовки любого вида. Это применяется к рабочей области, нерабочей области (включая строку заголовка и линейки прокрутки) и любую часть родительского окна, раскрытого в результате перемещения окна. Когда этот флажок установлен, прикладная программа должна явно лишить законной силы или перерисовывать любые части окна и родительского окна, которые требуют перерисовки.
  • SWP_NOREPOSITION - То же самое, что и флажок SWP_NOOWNERZORDER.
  • SWP_NOSENDCHANGING - Предохраняет окно от приема сообщения WM_WINDOWPOSCHANGING.
  • SWP_NOSIZE - Сохраняет текущий размер (игнорирует cx и cy параметры).
  • SWP_NOZORDER - Сохраняет текущую Z-последовательность (игнорирует параметр hWndInsertAfter).
  • SWP_SHOWWINDOW - Отображает окно.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
Если установлены флажки SWP_SHOWWINDOW или SWP_HIDEWINDOW, окно не может быть перемещено или изменен его размер. Все координаты для дочерних окон - рабочие координаты (относительно левого верхнего угла рабочей области родительского окна). Окно может быть сделано самым верхним окном или, путем установки параметра hWndInsertAfter в HWND_TOPMOST с гарантией того, что флажок SWP_NOZORDER не установлен, или, путем установки позиции окна в Z-последовательности так, чтобы оно было выше любого существующего самого верхнего окна. Когда не самое верхнее окно делается самым верхним, находящиеся в его собственности окна также делаются самыми верхними. Его владельцы, однако, не изменяются. Если ни флажок SWP_NOACTIVATE, ни флажок SWP_NOZORDER не установлен (то есть, когда прикладная программа потребовала, чтобы окно было одновременно, и активизировано, и чтобы его позиция изменилась в Z-последовательности), значение, заданное в hWndInsertAfter, используются только в следующих обстоятельствах:

  • Ни флажок HWND_TOPMOST ни флажок HWND_NOTOPMOST не установлен в hWndInser-tAfter.
  • Окно, идентифицированное hWnd - не активное окно.

Прикладная программа не может активизировать неактивное окно без такого же обеспечения ему в верхней части Z-последовательности. Прикладные программы могут изменять позицию активизированного окна в Z-последовательности без ограничений, или они могут активизировать окно, а затем переместить его в верхнюю часть самых верхних или не самых верхних окон. Если самое верхнее окно переустановлено в нижней части (HWND_BOTTOM) Z-последовательности или после любого не самого верхнего окна, оно больше не самое верхнее. Когда самое верхнее окно сделано не самым верхним, его владельцы и находящиеся в его собственности окна также делаются не самыми верхними окнами. Не самое верхнее окно может владеть самым верхним окном, а наоборот не может происходить. Любое окно (например, диалоговое окно) принадлежащее самому верхнему окну самостоятельно делается самым верхним окном, гарантируя, что все окна находящиеся во владении находятся выше их владельца. Если прикладная программа не в активном режиме, а должна быть в активном режиме, она должна вызвать функцию SetForegroundWindow.

Смотри также
MoveWindow, SetActiveWindow, SetForegroundWindow

Размещение и совместимость SetWindowPos

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция SetWindowText

(УстановитьТекстовоеОкно)

Функция SetWindowText изменяет текст строки заголовка заданного окна (если таковая имеется). Если определяемое окно - элемент управления, то его текст изменяется.

Синтаксис

BOOL SetWindowText
(
HWND hWnd, // дескриптор окна или элемента управления
LPCTSTR lpString // адрес строчки
);

Параметры
hWnd
Идентифицирует окно или элемента управления, чей текст должен быть изменен.
lpString
Указывает на строку с нулевым символом в конце, которую нужно использовать как новый заголовок или текст элемента управления.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
Функция SetWindowText вызывает сообщение WM_SETTEXT, которое будет послано определяемому окну или элементу управления. Если окно - элемент управления окна со списком, созданное в стиле WS_CAPTION, то, не смотря на это, SetWindowText устанавливает текст для элемента управления, а не для ввода в окно списка. Функция SetWindowText не увеличивает размер символов табуляции (код ASCII 0x09). Символы табуляции отображаются как символы вертикальной черты (|).

Смотри также
GetWindowText, WM_SETTEXT

Размещение и совместимость SetWindowText

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется


Функция ShowOwnedPopups

(ПоказатьСобственноеВыскакивающееОкно)

Функция ShowOwnedPopups показывает или скрывает все выскакивающие окна, принадлежащие определяемому окну.

Синтаксис

BOOL ShowOwnedPopups
(
HWND hWnd, // дескриптор окна
BOOL fShow // флажок показа окна
);

Параметры

hWnd
Идентифицирует окно, которое владеет выскакивающими окнами, которые будут показаны или скрыты.
fShow
Устанавливает, должны ли выскакивающие окна быть показаны или скрыты. Если этот параметр - ИСТИНА (TRUE), все скрытые выскакивающие окна показываются. Если этот параметр - ЛОЖЬ(FALSE), все видимые выскакивающие окна скрываются.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания
ShowOwnedPopups показывает только окна, которые были скрыты предыдущим обращением к функции ShowOwnedPopups. Например, если выскакивающее окно было скрыто, при помощи использования функции ShowWindow, впоследствии вызыв функции ShowOwnedPopups с установкой в ней параметра fShow в значение ИСТИНА (TRUE) не заставит окно быть показанным.

Смотри также
IsWindowVisible, ShowWindow

Размещение и совместимость ShowOwnedPopups

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция ShowWindow

(ПоказатьОкно)

Функция ShowWindow устанавливает состояние показа определяемого окна.

Синтаксис

BOOL ShowWindow
(
HWND hWnd, // дескриптор окна
int nCmdShow // состояние показа окна
);

Параметры hWnd
Идентифицирует окно.
nCmdShow
Определяет, как окно должно быть показано. Этот параметр первоначально игнорируется, когда прикладная программа вызывает ShowWindow, если программа, которая запустила прикладную программу, обеспечивает структуру STARTUPINFO. Иначе, при первом вызове функции ShowWindow, это значение должно быть значением, полученным функцией WinMain в ее параметре nCmdShow. В последующих обращениях, этот параметр может быть одним из следующих значений:

  • SW_HIDE - Скрывает окно и активизирует другое окно.
  • SW_MAXIMIZE - Развертывает определяемое окно.
  • SW_MINIMIZE - Свертывает определяемое окно и активизирует следующее окно верхнего уровня в Z-последовательности.
  • SW_RESTORE - Активизирует и отображает окно. Если окно свернуто или развернуто, Windows восстанавливает в его первоначальных размерах и позиции. Прикладная программа должна установить этот флажок при восстановлении свернутого окна.
  • SW_SHOW - Активизирует окно и отображает его текущие размеры и позицию.
  • SW_SHOWDEFAULT - Устанавливает состояние показа, основанное на флажке SW_, определенном в структуре STARTUPINFO, переданной в функцию CreateProcess программой, которая запустила прикладную программу.
  • SW_SHOWMAXIMIZED - Активизирует окно и отображает его как развернутое окно.
  • SW_SHOWMINIMIZED - Активизирует окно и отображает его как свернутое окно.
  • SW_SHOWMINNOACTIVE - Отображает окно как свернутое окно. Активное окно остается активным.
  • SW_SHOWNA - Отображает окно в его текущем состоянии. Активное окно остается активным.
  • SW_SHOWNOACTIVATE - Отображает окно в его самом современном размере и позиции. Активное окно остается активным.
  • SW_SHOWNORMAL - Активизирует и отображает окно. Если окно свернуто или развернуто, Windows восстанавливает его в первоначальном размере и позиции. Прикладная программа должна установить этот флажок при отображении окна впервые.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Первый раз, когда программа вызывает ShowWindow, она использует параметр nCmdShow функции WinMain как свой параметр nCmdShow. Последующие обращения к ShowWindow должны использовать одно из значений в данном списке, вместо того, заданного функцией WinMain параметра nCmdShow. Как отмечено в обсуждении параметра nCmdShow, значение nCmdShow игнорируется при первом обращении к ShowWindow, если программа, которая запустила прикладную программу, определяет информацию автозапуска в структуре STARTUPINFO. В этом случае, ShowWindow использует информацию, заданную в структуре STARTUPINFO, чтобы показать окно. На последующих обращениях, прикладная программа должна вызвать ShowWindow с установкой nCmdShow в SW_SHOWDEFAULT, чтобы использовать информацию автозапуска, обеспеченную программой, которая запустила прикладную программу. Например, программа Program Manager устанавливает, что прикладные программы начинаются со свернутого основного окна. Это поведение разработано для следующих ситуаций:

  • Прикладные программы создают свое основное окно, вызывая CreateWindow с установкой флажка WS_VISIBLE.
  • Прикладные программы создают свое основное окно, вызывая CreateWindow со сброшенным флажком WS_VISIBLE, а при более позднем обращении к ShowWindow с установкой флаж-ка SW_SHOW, чтобы делать его видимым.

Смотри также
CreateProcess, CreateWindow, ShowOwnedPopups, STARTUPINFO, WinMain

Размещение и совместимость ShowWindow

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция ShowWindowAsync

(АсинхронныйПоказОкна) [Не поддерживается в Windows NT]

Функция ShowWindowAsync устанавливает состояние показа окна, созданного различными потоками.

Синтаксис

BOOL ShowWindowAsync
(
HWND hWnd, // дескриптор окна
int nCmdShow // состояние показа окна
);

Параметры

hWnd
Идентифицирует окно.
nCmdShow
Устанавливает, как окно должно быть показано. Для списка возможных значений, см. описание функции ShowWindow.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля. Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Эта функция извещает о событии показа окна очередь сообщений данного окна. Прикладная программа может использовать эту функцию, чтобы избежать состояния зависания при ожидании зависшей прикладной программы, чтобы закончить обрабатывать событие показа окна.

Смотри также
ShowWindow

Размещение и совместимость ShowWindowAsync

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция TileWindows

(МозаикаОкон) [Не поддерживается в Windows NT]

Функция TileWindows располагает "мозаикой" определяемые окна или дочерние окна заданного родительского окна.

Синтаксис

WORD WINAPI TileWindows
(
HWND hwndParent, // дескриптор родительского окна
UINT wHow, // типы окон, которые не упорядочиваются
CONST RECT *lpRect, // прямоугольник, где упорядочиваются окна
UINT cKids, // упорядочиваемое число окон
const HWND FAR *lpKids // массив дескрипторов окна
);

Параметры

hwndParent
Идентифицирует родительское окно. Если этот параметр - ПУСТО (NULL), предполагается окно рабочего стола.
wHow Определяет типы окон, которые не упорядочиваются, или слева направо или горизонтально. Этот параметр может быть одним из следующих значений, объединенных с нулем или большим количеством значений, перечисленных в функции CascadeWindows:

  • MDITILE_HORIZONTAL - Располагает "мозаикой" окна горизонтально.
  • MDITILE_VERTICAL - Располагает "мозаикой" окна вертикально.

lpRect
Указывает на структуру SMALL_RECT, которая устанавливает прямоугольную область, в экранных координатах, внутри которой помещены окна. Если этот параметр - ПУСТО (NULL), используется рабочая область родительского окна.
cKids
Устанавливает число элементов в массиве, заданном параметром lpKids. Этот параметр игнорируется, если lpKids - ПУСТО (NULL).
lpKids
Указывает на массив дескрипторов окна, идентифицирующих окна, которые упорядочиваются. Если этот параметр - ПУСТО (NULL), размещаются дочерние окна заданного родительского окна (или окна рабочего стола).

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - число размещенных окон. Если функция не выполняет задачу, возвращаемое значение нулевое.

Смотри также
CascadeWindows, SMALL_RECT

Размещение и совместимость TileWindows

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция WindowFromPoint

(ОкноИзПункта)

Функция WindowFromPoint отыскивает дескриптор окна, которое содержит заданный пункт.

Синтаксис

HWND WindowFromPoint
(
POINT Point // структура с отметкой
);

Параметры

Point
Определяет структуру POINT, определяющую пункт, которая был отмечен.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна, которое содержит отметку. Если никакого окна не существует в данной отметке, возвращаемое значение - ПУСТО (NULL).

Замечания
Функция WindowFromPoint не отыскивает дескриптор скрытого или заблокированного окна, даже если пункт - внутри окна. Прикладная программа для неограниченного поиска должна использовать функцию ChildWindowFromPoint.

Смотри также
ChildWindowFromPoint, POINT, WindowFromDC

Размещение и совместимость WindowFromPoint

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция WinMain

(ГлавноеОкно)

Функция WinMain вызывается системой как начальная точка входа, для базирующейся на Win32, прикладной программы.

Синтаксис:

int WINAPI WinMain
(
HINSTANCE hInstance, // дескриптор текущего экземпляра окна
HINSTANCE hPrevInstance, // дескриптор предыдущего экземпляра окна
LPSTR lpCmdLine, // указатель на командную строку
int nCmdShow // показывает состояние окна
);

Параметры

hInstance
Идентифицирует текущий образец прикладной программы.
hPrevInstance
Идентифицирует предыдущий образец прикладной программы. Для базирующейся на Win32 прикладной программы, этот параметр всегда имеет значение ПУСТО (NULL). Если Вам нужно обнаружить, существует ли другой образец уже существующей программы, создайте именованный mutex-объект, используя функцию CreateMutex. Если функция GetLastError возвращает сообщение ERROR_ALREADY_EXISTS, другой образец вашей прикладной программы существует (это создано mutex-объектом).
lpCmdLine
Указывает на строку с нулевым символом в конце, определяющую командную строку для прикладной программы.
nCmdShow
Определяет, как окно должно быть показано. Этот параметр может быть одним из следующих значений:

  • SW_HIDE - Скрывает окно и активизирует другое окно.
  • SW_MINIMIZE - Минимизирует определенное окно и активизирует окно верхнего уровня в списке системы.
  • SW_RESTORE - Активизирует и отображает окно. Если окно минимизировано или развернуто, Windows восстанавливает его в первоначальном размере и позиции (то же самое, что и SW_SHOWNORMAL).
  • SW_SHOW - Активизирует и отображает окно на экране в его текущем размере и позиции.
  • SW_SHOWMAXIMIZED - Активизирует окно и отображает его как развернутое окно.
  • SW_SHOWMINIMIZED - Активизирует окно и отображает его как пиктограмму.
  • SW_SHOWMINNOACTIVE - Отображает окно как пиктограмму. Активное окно остается активным.
  • SW_SHOWNA - Отображает окно в его текущем состоянии. Активное окно остается активным.
  • SW_SHOWNOACTIVATE - Отображает окно в его самых последних размерах и позиции. Активное окно остается активным.
  • SW_SHOWNORMAL - Активизирует и отображает окно. Если окно минимизировано или развернуто, Windows восстанавливает его в первоначальный размер и позицию (то же самое, что и SW_RESTORE).

Возвращаемые значения
Если функция достигла цели, она завершается тогда, когда примет сообщение WM_QUIT, она должно возвратить значение выхода, содержащееся в параметре этого сообщения wParam. Если функция завершается перед вводом цикла сообщения, она должна возвратить 0.

Замечания
WinMain инициализирует прикладную программу, отображает на экране её основное окно и, затем, входит в цикл сообщений " поиск и отправка по назначению (диспетчеризация)", который является управляющей структурой верхнего уровня для остальных элементов выполнения прикладной программы. Цикл сообщений завершается, когда получено сообщение WM_QUIT. В этой точке, WinMain завершает работу прикладной программы, возвращая значение, переданное в параметр wParam сообщения WM_QUIT. Если WM_QUIT было получено в результате вызова PostQuitMessage, значение wParam - значение параметра nExitCode функции PostQuitMessage. Для получения дополнительной информации, см. Создание Цикла Сообщений (Creating a Message Loop).

Смотри также
CreateMutex, DispatchMessage, GetMessage, PostQuitMessage, TranslateMessage

Размещение и совместимость WinMain

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека
Заголовочный файл winbase.h
Unicode Нет
Замечания по платформе Не имеется


Функция AnyPopup

(ЛюбоеВыскакивающее)

Функция AnyPopup указывает, существует ли находящееся в собственности, видимое, верхнего уровня выскакивающее, или перекрывающее окно на экране. Функция ищет по всему экрану Windows, а не только в рабочей области вызванной прикладной программы.

Синтаксис

BOOL AnyPopup(VOID)

Параметры
У этой функции нет параметров

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

Замечания
AnyPopup - функция версии Windows 1.x и сохраняется для целей совместимости. Вообщем-то она бесполезна. Эта функция не обнаруживает, не находящиеся в собственности выскакивающие окна или окна, в которых не установлен бит стиля WS_VISIBLE.

Смотри также
GetLastActivePopup, ShowOwnedPopups

Размещение и совместимость AnyPopup

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция EnumTaskWindows

(ПеречислениеЗадачОкон)

Функция EnumTaskWindows устаревшая. Она была заменена функцией EnumThreadWindows. Чтобы поддерживать совместимость для 16-разрядных прикладных программ, функция EnumTaskWindows была заменена на макрокоманду, которая вызывает EnumThreadWindows. Более ранние прикладные программы могут продолжать вызывать EnumTaskWindows, как прежде было документировано, но новые прикладные программы должны использовать EnumThreadWindows.


Функция GetSysModalWindow

(ПолучитьСистемноеМодальноеОкно)

Функция GetSysModalWindow устаревшая. Эта функция предоставляется только для совместимости с 16-разрядными версиями Windows.

 

Функция GetWindowTask

(ПолучитьЗадачуОкна)

Функция GetWindowTask устаревшая. Эта функция предоставляется только для совместимости с 16-разрядными версиями Windows. Базирующиеся на Win32 прикладные программы должны использовать функцию GetWindowThreadProcessId.

 

Функция SetSysModalWindow

(УстановитьСистемноеМодальное Окно)

Функция SetSysModalWindow устаревшая. Эта функция используется только для совместимости с 16-разрядными версиями Windows. Новая модель ввода данных не принимает во внимание окна System Modal.

 

Функция ChildWindowFromPoint

(ДочернееОкноОтТочки) [Теперь поддерживается в Windows NT]

Функция ChildWindowFromPoint определяет, какие, если таковые вообще имеются, из дочерних окон, принадлежащих родительскому окну, содержат точку установки (фиксированную).

Синтаксис

HWND ChildWindowFromPoint
(
HWND hWndParent, // дескриптор родительского окна
POINT Point // структура с координатами точки
);

Параметры

hWndParent
Идентифицирует родительское окно.
Point
Определяет структуру POINT, которая устанавливает для проверки рабочие координаты точки.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор дочернего окна, которое содержит точку, даже если дочернее окно скрыто или заблокировано. Если точка находится за пределами родительского окна, возвращаемое значение - ПУСТО (NULL). Если точка - внутри родительского окна, а не внутри какого-либо дочернего окна, возвращаемое значение - дескриптор родительского окна.

Замечания
Windows поддерживает внутренний список, содержащий дескрипторы дочерних окон, связанных с родительским окном. Порядок дескрипторов в списке зависит от Z-последовательности дочерних окон. Если больше чем одно дочернее окно содержат фиксированную точку, Windows возвращает значение дескриптора первого окна в списке, которое содержит точку.

Смотри также
ChildWindowFromPointEx, POINT, WindowFromPoint

Размещение и совместимость ChildWindowFromPoint

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется


Функция ChildWindowFromPointEx

(ДочернееОкноОтТочкиРасширенная) [Теперь поддерживается в Windows NT]

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

Синтаксис

HWND ChildWindowFromPointEx
(
HWND hwndParent, // дескриптор родительского окна
POINT pt, // структура с координатами точки
UINT uFlags // флажки пропуска
);

Параметры

hwndParent
Идентифицирует родительское окно.
pt
Определяет структуру POINT, которая определяет для проверки рабочие координаты точки.
uFlags
Определяет, какие дочерние окна пропустить. Этот параметр может быть комбинацией следующих значений:

  • CWP_ALL - Не пропускать все дочерние окна.
  • CWP_SKIPINVISIBLE - Пропускать невидимые дочерние окна.
  • CWP_SKIPDISABLED - Пропускать блокированные дочерние окна .
  • CWP_SKIPTRANSPARENT - Пропускать прозрачные дочерние окна.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор первого дочернего окна, которое содержит точку и соответствует критериям, определенным в uFlags. Если точка - внутри родительского окна, а не внутри какого-либо дочернего окна, которое соответствует критериям, возвращаемое значение - дескриптор родительского окна. Если точка находится за пределами родительского окна или если функция не выполнила задачу, возвращаемое значение - ПУСТО (NULL).

Замечания
Windows поддерживает внутренний список, который содержит дескрипторы дочерних окон, связанных с родительским окном. Порядок дескрипторов в списке зависит от Z-последовательности дочерних окон. Если больше чем одно дочернее окно содержат фиксированную точку, Windows возвращает дескриптор первого окна в списке, который содержит точку и соответствует критериям, определенным uFlags.

Смотри также
ChildWindowFromPoint, POINT, WindowFromPoint

Размещение и совместимость ChildWindowFromPointEx

Windows NT			Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется

 

Функция CloseWindow

(ЗакрытьОкно)

Функция CloseWindow свертывает (но не разрушает) определенное окно.

Синтаксис:

BOOL CloseWindow
(
HWND hWnd // дескриптор окна, которое свертывается
);

Параметры

hWnd
Идентифицирует окно, которое должно быть свернуто.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - не ноль. Если функция потерпела неудачу возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке вызовите функцию GetLastError.

Замечания
Окно свертывается, уменьшая свой размер до пиктограммы, и перемещается в область пиктограмм экрана. Windows отображает пиктограмму окна вместо окна и выводит заголовок окна ниже пиктограммы. Чтобы уничтожить окно, прикладная программа должна использовать функцию DestroyWindow.

Смотри также
ArrangeIconicWindows, DestroyWindow, IsIconic, OpenIcon

Размещение и совместимость CloseWindow

Windows NT			Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется