Функции поддержки окон. Данные класса окна., страница 5

См.     \local-sourcea\chap04\04-12. txt

Рисунок 4.3.

Пример применения функции EnumThreadWindows

EnumWindows                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL EnumWindows( WNDENUMPROC wndenmprc, LPARAM IParam )

Параметры

wndenmprc

WNDENUMPROC. Указатель на функцию обратного вызова, определенную в приложении.

IParam

LPARAM. Определенное в приложении 32-разрядное значение, которое будет передано в функцию обратного вызова для каждого окна.

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

EnumChildWindows , EnumThreadWindows

Синтаксис обратного вызова

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM IParam )

Параметры обратного вызова

hwnd

HWND. Дескриптор окна верхнего уровня приложения, которое в настоящее время выполняется в системе.

IParam

LPARAM. Определенное в приложении 32-разрядное значение, которое задано в функции EnumWindows.

Возвращаемое Значение обратного вызова

BOOL. TRUE — для продолжения перечисления; FALSE — для прекращения перечисления.

Пример

В следующем примере функция EnumWindows применяется для создания списка имен и классов всех окон верхнего уровня. Дескриптор элемента управления списком передается в параметр IParamфункции EnumWindows.

См .    \ 1 ocal -sources \chap04\04-13.txt

FindWindow                                     • Windows 98   + Windows 2000

Описание

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

Синтаксис

HWND FindWindow( LPCTSTR IpszOass, LPCTSTR IpsWmdmv )

Параметры

IpszCloss

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя класса, или целочисленное атомарное значение, являющееся идентификатором класса. Если параметр представляет собой атомарное значение, это должно быть глобальное атомарное значение. Старшее слово должно быть установлено в 0, а младшее — должно содержать это значение.

IpszWindow

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя окна. Если этот параметр имеет значение NULL, все имена окон должны совпадать.

Возвращаемое значение

HWND. Если найдено окно, которое соответствует данному имени класса и имени окна, возвращаемым значением будет дескриптор этого окна; в

Включаемый файл

winuser.h

См. также

FindWindowEx, EnumWindows, ChildWindowFromPoint, GetCIassName, GetWindowText

Пример

В следующем примере показана функция, которая пытается найти окно программы Clock. Если окно найдено, функция возвращает значение TRUE (при условии, что эта программа часов выполняется в системе).

BOOL   IsClockRunningO

{ if    (   FindWindow (   NULL,    "Clock"   )    ) return (   TRDE   ) ; else return (   FALSE   ) ; }

FindWindowEx                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR IpszClass, LPCTSTR IpszWndmv)

Параметры

hwndParent

HWND. Дескриптор родительского окна, в котором необходимо выполнить поиск дочерних окон. Если применяется значение NULL, поиск будет выполнен во всех окнах.

hvndChildAfttr

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

tpszClass

LPCTSTR Указатель на строку с нулевым символом в конце, которая содержит имя класса или целочисленное атомарное значение, являющееся идентификатором класса. Если параметр представляет собой атомарное значение, он должен быть глобальным атомарным значением. Старшее слово должно быть установлено в 0, а младшее — должно содержать это значение.

IpszWindow

LPCTSTR Указатель на строку с нулевым символом в конце, которая содержит имя окна. Если этот параметр имеет значение NULL, все имена окон будут соответствовать критерию поиска.

Возвращаемое значение

HWND. Если найдено окно, соответствующее заданному имени класса и имени окна, возвращаемое значение — дескриптор этого окна; в ином случае возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

FindWindow, ChildWindowFromPoint, GetCIassName, GetWindowText

Пример

См. пример для функции FindWindow. Единственным отличием является то, что выполняется поиск всех окон в системе, а не только окон верхнего уровня.

FlashWindow                                    • Windows 98   * Windows 2000

Описание

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

Синтаксис

BOOL FlashWindow( HWND hwnd, BOOL blnvert )

Параметры

hwnd

HWND. Дескриптор окна, для которого необходимо задать мерцание.

blnvert

BOOL. Если окно нужно переключить с одного состояния в другое, устанавливается в TRUE. Для переключения окна в первоначальное состояния устанавливается в FALSE.

Возвращаемое значение

BOOL. Состояние окна перед вызовом функции FlashWindow. Если окно было активным, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

FlashWindowEx, GetFocus, SetFocus, SetActiveWindow

Пример

См. пример для функции Islconic.

FlashWindowEx                                • Windows 98   * Windows 2000

Описание

Функция FlashWindowEx аналогична FlashWindow, за исключением того, что позволяет указать больше опций.

Синтаксис

BOOL FlashWindowEx( PFLASHWINFO pFWinfo )

Параметры

pFWinfo

PFLASHWINFO. Указатель на структуру FLASHWINFO, содержащую опции для функции.

Возвращаемое значение

BOOL. Состояние окна перед вызовом функции FlashWindowEx. Если окно было активным, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл                   <

winuser.h

См. также           '.

FlashWindow

Определение FLASHWINFO

typedef   struct { UINT            cbSize; HWND            hwnd; DWORD         dwFlags ; OINT           uCount; DWORD         dwTimeout; }    FLASHWINFO,    «PFLASHWINFO;

Члены

cbSize

UINT. Размер структуры в байтах.

hwnd

HWND. Дескриптор окна, для которого необходимо задать мерцание.

dwFlags

DWORD. Указывает состояние мерцания. В качестве этого параметра может применяться один или несколько флажков, перечисленных в табл. 4.6.

uCount

UINT. Указывает, сколько раз должно произойти мерцание окна.

dwTimeomt

DWORD. Периодичность мерцания окна в миллисекундах. Если это значение установлено равным нулю, функция использует заданную по умолчанию частоту мигания курсора.

Таблица 4.6. ЗначенияфлажковdwFlags структурыFLASHWINFO

Флажок

Описание

FLASHW_STOP

Остановить мерцание. Система восстанавливает первоначальное состояние окна.

FLASHW_CAPTION

Задать мерцание заголовка окна.

FLASHWJTRAY

Задать мерцание кнопки панели задач.

FLASHW_ALL

Задать мерцание и заголовка окна, и кнопки панели задач.

FLASHWJTIMER

Задать мерцание, которое будет выполняться непрерывно, пока не будет установлен флажок FLASHW_STOP.

FLASHW_TIMERNOFG

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

GetActiveWindow                            • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetActiveWindow( VOID )

Параметры

Функция не имеет параметров.

Возвращаемое значение

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

Включаемый файл

winuser.h

См. также

SetActiveWindow, GetFocus, SetFocus

Пример

В следующем примере заголовок активного окна будет изменен на "Active Window".

См.    \local-source3\chap04\04-14.txt

GetAltTablnfo                                   • Windows 98   • Windows 2000

Описание

Функция GetAltTablnfo выбирает информацию состояния для указанного окна, если оно является окном переключения между приложениями. Окно переключения между приложениями позволяет переключиться на окно приложения, которое использовалось непосредственно перед этим. Чтобы отобразить окно переключения между приложениями, необходимо нажать клавишу Alt+Tab.

Синтаксис

BOOL GetAltTabInfo( HWND hWnd, int iltem, PALTTABINFO pAti, LPTSTR pszItemText, UINT cchltemText )

Параметры

hWnd

HWND. Дескриптор окна, для которого восстановлена информация состояния. Это окно должно быть окном переключения между приложениями.

iltem

int. Индекс пиктограммы в окне переключения между приложениями. Если параметр pszItemTextимеет значение NULL, имя элемента копируется в строку pszItemText. Если этот параметр имеет значение -1, имя элемента не копируется.

pAti

PALTTABINFO. Указатель на структуру ALTTABINFO, которая принимает информацию состояния.

pszItemText

LPTSTR. Указатель на строку, которая принимает имя элемента. Если этот параметр установлен в NULL, имя элемента не копируется.

cchltemText

UINT. Размер буфера pszItemTextв символах типа TCHAR.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращает значение TRUE; в ином случае —  FALSE. Для получения расширенной информации об ошибках применяется функция GetLastError.

Включаемый файл

winuser.h

Определение ALTTABINFO

typedef   struct   tagALTTABINFO

{ DWORD         cbSize; int              cl terns ; int             cColunms ; int             cRows ; int              iColFocus ; int              iRowFocus ; int              cxltem; int              cyltem; POINT        ptStart; }   ALTTABINFO,    «PALTTABINFO;

Члены

cbSize

DWORD. Размер структуры в байтах.

cltems

int. Число элементов в окне.

с Columns

int. Число столбцов в окне.

cRows

int. Число строк в окне.

iColFocus

int. Столбец элемента, который имеет фокус.

iRowFocus

int. Строка элемента, который имеет фокус.

cxltem

int. Ширина пиктограмм в окне переключения между приложениями.

cyltem

int. Высота пиктограмм в окне переключения между приложениями.

ptStart

POINT. Левый верхний угол первой пиктограммы.

GetAncestor                                      • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetAncestor( HWND hWnd, UINT и flags )

Параметры

hWnd

HWND. Дескриптор окна, для которого необходимо выбрать информацию о родительском окне. Если в качестве этого значения установлен дескриптор окна рабочего стола, эта функция возвращает NULL.

uFlags

UINT. Указывает, о каком родительском окне должна быть выбрана информация. В качестве этого параметра должно быть установлено одно из значений, перечисленных в табл. 4.7.

Таблица 4.7. ЗначенияuFlags функцииGetAncestor

Значение

Описание

GA_PARENT

Получить информацию о родительском окне. Эта информация не включает данных о владельце, которые можно получить с использованием функции GetParent.

GA_ROOT

Определить корневое окно, пройдя по цепочке родительских окон.

GA_ROOTOWNER

Определить принадлежащее владельцу корневое окно, пройдя по цепочке родительских окон, возвращенных функцией GetParent.

Возвращаемое значение

HWND. Возвращаемое значение — дескриптор окна предка.

Включаемый файл

winuser.h

См. также

GetParent

GetClasslnfo                                     • Windows 98   • Windows 2000

Описание

Функция  GetClasslnfo выбирает информацию WNDCLASS для класса окна, которую можно использовать для регистрации аналогичного класса окна. Эта функция была заменена функцией GetClassInfoEx. Эта функция все еще применяется, однако она не возвращает информацию о малой пиктограмме класса.

Синтаксис

BOOL GetClassInfo( HINSTANCE hinst, LPCTSTR IpszClass, LPWNDCLASS Ipwc )

Параметры

hinst

HINSTANCE. Дескриптор экземпляра приложения, создавшего класс. Для получения информации о предопределенных классах, таких как BUTTON и EDIT, этот параметр должен быть установлен в NULL.

IpszClass

LPCTSTR. Указатель на строку с нулевым символом в конце или целочисленное атомарное значение. Если это атомарное значение, оно должно представлять собой глобальное атомарное значение, которое было создано путем вызова функции GlobalAddAtom. Старшее слово должно быть установлено в 0, а младшее — должно содержать это значение.

Ipwc

LPWNDCLASS. Указатель на структуру WNDCLASS, которая должна получить информацию о классе. Определение структуры WNDCLASS приведено ниже.

Возвращаемое значение

BOOL. Если функция выполняется успешно и находит указанный класс, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

GetClasslnfoEx, GetClassWord, GetClassLong, SetCIassWord, SetClassLong, RegisterClass, UnregisterClass

Определение WNDCLASS

typedef   struct     WNDCLASS < UINT style; WNDPROC        IpfnWndProc; int   cbClsExtra ; int   cbWndExtra; HINSTANCE   hlnstance; HICON            hlcon; HCURSOR       hCursor ; HBROSH          hbrBackground; LPCTSTR        IpszMenuName; LPCTSTR        IpszClassName; )   WNDCLASS,          *PWNDCLASS;

Члены

Информация об отдельных членах структуры WNDCLASS приведена в описании функции RegisterClass в главе 3.

Пример

В следующем примере выполняется выборка информации о классе главного окна и отображение имени меню класса в окне сообщения.

См.    \local-sources\chap04\04-15. txt

GetClasslnfoEx                                  •  Windows 98   +  Windows 200П

Описание

Функция GetClasslnfoEx аналогична функции GetClassInfo, за исключением того, что она выбирает расширенную информацию о классе, который был зарегистрирован с помощью функции RegisterClassEx.

Синтаксис

BOOL GetClassInfoEx( HINSTANCE hinst, LPCTSTR IpszCloss LPWNDCLASSEX Ipwcx )

Параметры

hinst

HINSTANCE. Дескриптор экземпляра приложения, создавшего класс. Для получения информации о предопределенных классах, таких как BUTTON и EDIT, этот параметр должен быть установлен в NULL.

IpszClass

LPCTSTR. Указатель на строку с нулевым символом в конце или целочисленное атомарное значение. Если это — атомарное значение, оно должно представлять собой глобальное атомарное значение, которое было создано путем вызова функции GlobalAddAtom. Старшее слово должно быть установлено в 0, а младшее — должно содержать это значение.

Ipwcx

LPWNDCLASSEX. Указатель на структуру WNDCLASSEX, которая получает информацию о классе. Определение структуры WNDCLASSEX приведено ниже.

Возвращаемое значение

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

Таблица 4.8. Значенияпараметраnlndex функцииGetClassLong

Значение

Описание

GCL_CBCLSEXTRA

Размер дополнительных данных класса в байтах.

GCL_CBWNDEXTRA

Размер дополнительных данных окна в байтах. Для доступа к этим данным применяются функции GetWindowLong или GetWindowWord.

GCL_HBRBACKGROUND

Дескриптор кисти цвета фона класса.

GCL_HCURSOR

Дескриптор курсора класса.

Включаемый файл

winuser.h

См. также

GetClassInfo, ReristerClassEx

Определение WNDCLASSEX

typedef   struct       NNDCLASSEX { UINT               cbSize; OINT               style; WNDPROC        IpfnWndProc; int               cbClsExtra; int                cbWndExtra; HANDLE          hlnstance; HICON            hlcon; HCURSOR       hCursor ; HBRUSH          hbrBack^round; LPCTSTR        IpszMenuName ; LPCTSTR       Ips zClas sName ; HICON            hlconSm; }   WNDCLASSEX,    *PWNDCLASSEX;

Члены

Информация об отдельных членах структуры WNDCLASSEX приведена в описании функций RegjsterClass и RegisterClassEx в главе 3.

Пример

См. пример для функции GetClassInfo.

GetClassLong                                    • Windows 98   « Windows 200П

Описание

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

Синтаксис

DWORD GetClassLong( HWND hwnd, int nlndex )

Параметры

hwnd

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

nlndex

int. Одно из значений, приведенных в табл. 4.8, или смещение с отсчетом от нуля 32-разрядного значения в дополнительных данных класса.

Возвращаемое значение

DWORD. В случае успешного выполнения возвращаемое значение представляет собой 32-разрядное значение, которое было затребовано; в ином случае, возвращаемое значение — 0.

Значение

Описание

GCL_HICON

Дескриптор пиктограммы, которая используется с окнами, созданными с помощью этого класса.

GCL_HICONSM

Дескриптор малой пиктограммы, которая используется с окнами, созданными с помощью этого класса.

GCL_HMODULE

Дескриптор экземпляра модуля, который зарегистрировал этот класс.

GCL_MENUNAME

Указатель на строку имени меню, используемого с этим классом.

GCL  STYLE

Стиль класса окна.

GCL_WNDPROC

Указатель на функцию WndProc, используемую для этого класса.

Включаемый файл

winuser.h

См. также

GetClassInfo, GetClassWord, GetClassName, SetClassLong, GetWindowLong, GetClassLongPtr

Пример

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

HBRUSH  GetClassBackgroundf  HWND  hWnd   )

< return (    (HBROSH) GetClassLong (   hWnd,   GCL_HBKBACKGROUND   ;

}

GetClassLonqPtr                               • Windows 98   • Windows 2000

Описание

Функция GetClassLongPtr аналогична GetClassLong, за исключением того, что значение возвращается в виде указателя. Если в программе необходимо выбрать значение в виде дескриптора или указателя, вместо функции GetClassLong следует применять данную функцию. Это позволяет получать; 32-разрядные указатели или дескрипторы для 32-разрядных версий Windows и 64-разрядные указатели или дескрипторы для 64-разрядных версий Windows.

Синтаксис

ULONG_PTR GetClassLongPtr( HWND hwnd, int nlndex )

Параметры

hwnd

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

n Index

int. Одно из значений, приведенных в табл. 4.14, или смещение с отсчетом от нуля 64-разрядного значения в дополнительных данных класса.

Возвращаемое значение

ULONG_PTR. В случае успешного выполнения возвращается затребованное значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetClassInfo, GetClassWord, GetClassName, SetClassLong, GetWindowLong, GetClassLong

GetClassName                                   • Windows 98   • Windows 2000

Описание

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

Синтаксис

int GetClassName( HWND hwnd, LPTSTR IpClassName, int nClassName )

Параметры

hwnd

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

IpClassName

LPTSTR. Указатель на буфер, имеющий достаточную длину, чтобы принять строку имени класса.

nClassName

int. Максимальное число символов, которое может быть скопировано в буфер, указанный параметром IpClassName.

Возвращаемое значение

int. В случае успешного выполнения число символов (типа TCHAR), скопированных в буфер, на который указывает параметр IpClassName; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetClassInfo, GetClassLong, GetClassWord

Пример

См. пример для функции EnumWindows.

GetClassWord                                     •  Windows 98   •  Windows 2000

Описание

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

Синтаксис

WORD GetCIassWord( HWND hwnd, int nlndex ) 4

Параметры

hwnd

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

nlndex

int. Для выборки атомарного значения, которое использовалось в качестве уникального идентификатора при регистрации класса окна применяется GCW_ATOM. Для выборки 16-разрядного значения из дополнительных данных класса в качестве этого параметра устанавливается смещение этого значения с отсчетом от нуля.

Возвращаемое значение

WORD. В случае успешного выполнения возвращаемое значение представляет собой затребованное 16-разрядное значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetClassLong, SetClassWord, SetClassLong, GetWindowLong, GetWindowWord

Пример

В следующем примере регистрируется новый класс с дополнительными данными, и с помощью этого класса создается всплывающее окно. После создания окна в дополнительных данных класса устанавливается значение слова. Функция NewWndProc представляет собой оконную процедуру для нового класса. При выборе опции меню Test! из нового окна окно сообщения отображается со значением слова, которое было установлено в дополнительных данных класса.

СМ.    \local-sources\chap04\04-16.txt      '

GetClientRect                                     • Windows 98   • Windows 2000

Описание

Функция GetClientRect определяет клиентский прямоугольник для заданного окна. Его координаты даны относительно клиентской области окна, поэтому верхний левый угол имеет координаты (0,0). Функция GetClientRect может применяться для определения размеров клиентской области окна.

Синтаксис

BOOL GetClientRect( HWND hwnd, LPRECT Iprc )

Параметры

hwnd

HWND. Дескриптор окна, для которого необходимо выбрать прямоугольник клиентской области.

Iprc

LPRECT. Указатель на структуру  RECT, которая получит координаты клиентской области.

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

InvalidateRect, GetWindowRect, Update Window

Пример

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

См.    \local-sources\chap04\04-17.txt

GetDesktopWindow                          • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetDesktopWindow( VOID )

Параметры

Функция не имеет параметров.

Возвращаемое значение

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

Включаемый файл

winuser.h

Пример

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

См.    \local-aources\chap04\04-18.txt

GetFocus                                         •  Windows 98   •  Windows 2000

Описание

Функция GetFocus получает дескриптор элемента управления или окна, которое имеет фокус ввода. Это окно, куда направляется весь ввод с клавиатуры, выполняемый пользователем.

Синтаксис

HWND GetFocus( VOID )

Параметры

Функция не имеет параметров.

Возвращаемое значение

HWND. В случае успешного выполнения возвращаемое значение — дескриптор окна, которое имеет фокус ввода. Если в вызывающей нити нет окна с фокусом ввода, возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

SetFocus

Соответствующие сообщения

WM_SETFOCUS, WM_KILLFOCUS

Пример

В следующем примере показано создание двух элементов управления редактированием в качестве дочерних окон главного окна. При выборе опции меню Test! отображается окно сообщения с содержимым элемента управления редактированием, который имеет фокус ввода.

См.    \local-sources\chap04\04-19.txt

GetForegroundWindow                      • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetForegroundWindow( VOID )

Параметры

Функция не имеет параметров.

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

Включаемый файл

winuser.h

См. также

SetForegroundWindow

Пример

В следующем примере заголовок окна переднего плана показан в окне сообщения.

См.    \Iocal-sources\chap04\04-20.txt        ,

Get Last ActivePopup                          • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetLastActivePopup( HWND hwndOwner )

Параметры

hwndOwner

HWND. Дескриптор окна владельца.

Возвращаемое значение

HWND. Дескриптор всплывающего окна, которое было активным до того, как стало активным текущее окно. Возвращаемое значение аналогично значению hwndOwner, если соблюдено одно или несколько следующих условий: *   окно hwndOwner было активным непосредственно перед тем, как стало активным текущее окно;

-   окно hwndOwner не владеет какими-либо всплывающими окнами; *   hwndOwner не является окном верхнего уровня.

Включаемый файл

winuser.h

См. также

GetActiveWindow, SetActiveWindow

Пример

В следующем примере в области заголовка всплывающего окна устанавливается значение Last Active при выборе опции меню Test! в главном окне.

См.    Uocal -sources \chap04 \04-21 . txt

GetNextWindow                              • Windows 98   • Windows 2000

Описание

Функция GetNextWindow выбирает следующее или предыдущее по порядку окно. Если это — окно верхнего уровня, следующим или предыдущим окном также будет окно верхнего уровня. Если заданное окно является дочерним, следующее или предыдущее будет другим дочерним окном, имеющим то же родительское окно. Функция GetNextWindow используется в ситуациях, когда в приложении имеются только два или три окна, в которых необходимо провести поиск. Функции En um Windows и EnumChildWindows обеспечивают более высокую производительность, если приложение имеет много окон.

Синтаксис

HWND GetNextWindow( HWND hwnd, UINT uDirection )

Параметры

hwnd

HWND. Дескриптор окна, в котором должен начаться поиск.

uDirection

UINT. Устанавливается в значение GWJHWNDNEXT для поиска следующего окна или в значение GW_HWNDPREV для поиска предыдущего окна.

Возвращаемое значение

HWND. В случае успешного выполнения возвращаемое значение — дескриптор следующего или предыдущего окна, в зависимости от параметра uDirection. Если дескриптор следующего или предыдущего окна не существует, возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

Enum Windows, EnumChildWindows, GetWindow

Пример

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

См.    \local-sources\chap04\04-22.txt

GetParent                                        • Windows 98   * Windows 2000

Описание

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

Синтаксис

HWND GetParent( HWND hwndChild)

Параметры

hwndChild

HWND. Дескриптор окна, для которого необходимо выбрать дескриптор родительского окна.

Возвращаемое значение

HWND. Дескриптор родительского окна. Если указанное окно не имеет родительского окна, возвращаемое значение — NULL.

См. также

ChildWindowFromPoint, Enum Windows, GetWindow

Включаемый файл

winuser.h

Пример

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

См.     \local-eovrces\chap04\04-23.txt

GetProp                                          • Windows 98   • Windows 2000

Описание

Функция GetProp выбирает дескриптор элемента данных свойств, связанного с дескриптором окна и имеющего такой же строковый идентификатор, который был указан в функции SetProp. Функция GetProp позволяет связать данные с дескриптором окна и выбирать их по мере необходимости. Этот метод хранения данных, относящихся к окну, позволяет обращаться к ним где угодно в приложении без использования глобальных переменных.

Синтаксис

HANDLE GetProp( HWND hwnd, LPCTSTR Ipsz ),,

Параметры

hwnd

HWND. Дескриптор окна, с которым связан элемент свойств.

Ipsz

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

Возвращаемое значение

HANDLE. Дескриптор элемента свойств, если список свойств окна содержит элемент свойств, обозначенный строкой, содержащейся в Ipsz. Если такой элемент свойств не будет найден, возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

SetProp, RemoveProp, Enum Props, GlobalAddAtom

Пример

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

СМ.    \local-aources\chap04\04-24.txt

GetTitleBarlnfo                                  • Windows 98   • Windows 2000

Описание

Функция GetTitleBarlnfo выбирает информацию об области заголовка окон.

Синтаксис

BOOL GetTitleBarInfo( HWND hWnd, PTITLEBARINFO pTi )

Параметры

hWnd

HWND. Дескриптор окна, для которого нужно выбрать информацию области заголовка.

pTi

PTITLEBARINFO. Указатель на структуру TITLEBARINFO, предназначенную для получения информации.

Возвращаемое значение

BOOL. В случае успеха функция возвращает значение TRUE; в ином случае возвращает значение FALSE.

Включаемый файл

winuser.h

Определение TITLEBARINFO

typedef  struct  tagTITLEBARINFO { DWORD         cbSize; RECT            rcTitleBar ; DWORD         rgstate [CCHILDREN_TITLEBAR+1] ; }    TITLEBARINFO,    *PTITLEBARINFO; ~

Члены

cbSize

DWORD. Размер структуры в байтах.

rcTitleBor

RECT. Содержит координаты области заголовка. Эти координаты включают все элементы области заголовка, представленные в виде массива.

rgstote

DWORD. Массив, который получает значение DWORD для каждого элемента области заголовка. В табл. 4.9 показано, как элементы области заголовка представлены в массиве. Каждый элемент массива представляет собой одно или несколько значений, перечисленных в табл. 4.10.

Таблица 4. 10. Значенияэлементовмассиваrgstate структурыTITLEBARINFO

Значение

Описание

STATE_SYSTEM_FOCUSABLE

Элемент может принимать фокус.

STATE_SYSTEM_INVISIBLE

Элемент является невидимым.

STATE_SYSTEM_OFFSCREEN

Элемент не имеет видимого представления.

STATE_SYSTEM_UNAVAHABLE

Элемент недоступен.

STATE_SYSTEM_PRESSED

Элемент находится в нажатом состоянии.

Таблица 4.9. Элементымассиваrgstate структурыTITLEBARINFO

Индекс

Элемент

0

Сама область заголовка

1

Зарезервированный элемент

2

Кнопка свертывания окна

3

Кнопка развертывания окна

4

Кнопка справки

5

Кнопка закрытия

GetTopWindow                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND GetTopWindow( HWND hwndParent )

Параметры

hwndParent

HWND. Дескриптор родительского окна. Если этот параметр установлен в NULL, возвращаемым значением будет первое окно.

Возвращаемое значение

HWND. Если окно с дескриптором hwndParentимеет дочерние окна, будет возвращен дескриптор первого дочернего окна, с учетом внутреннего порядка окон. Если окно не имеет дочерних окон, будет возвращено значение NULL.

Включаемый файл

winuser.h

См. также

ChildWindowFromPoint, GetNextWindow, GetWindow

Пример

В следующем примере (рис. 4.4) создаются два дочерних элемента управления редактированием,   которые   перекрывают друг друга. При выборе опции меню Test! текст элемента управления редактированием, который находится сверху, принимает значение "I'm on Top!". Элементом управления  редактированием,   который считается находящимся сверху, является не тот элемент управления редактированием,    который    визуально   находится сверху, а тот, который был создан раньше. 

См.    \local-sources\chap04\04-25.txt

GetWindow                                      • Windows 98   • Windows 2000

Описание

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

Функция GetWindow предоставляет более простой способ поиска по сравнению с функциями EnumWindows и EnumChildWindows, и может применяться, если число окон, в которых должен выполняться поиск, невелико.

Синтаксис

HWND GetWindow( HWND hwnd, UINT uCmd )

Параметры

hwnd

HWND. Дескриптор окна, на котором основаны критерии поиска, заданные параметром uCmd.

uCmd

UINT. Параметр, обозначающий связь между окном, которое должно быть возвращено, и окном, заданным в параметре hwnd. Параметр uCmdможет принимать одно из значений, указанных в табл. 4.11.

Возвращаемое значение

HWND. В случае успешного выполнения возвращается дескриптор окна, соответствующего критериям. Если окно, соответствующее критериям, не найдено, возвращаемое значение — NULL.

Включаемый файл

winuser.h

Таблица 4.11. ЗначенияпараметраuCmd функцииGetWindow

Значение

Описание

GW_CHILD

Возвратить первое дочернее окно окна.

GW_ENABLEPOPUP

(Windows 2000) Возвратить дескриптор, который обозначает разрешенное всплывающее окно, принадлежащее указанному окну; в ином случае, если нет разрешенных всплывающих окон, выбранным дескриптором является дескриптор указанного окна.

GW_HWNDHRST

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

GW_HWNDLAST

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

GW_HWNDNEXT

Возвратить следующий дескриптор окна в списке диспетчера окон.

GW_HWNDPREV

Возвратить предыдущий дескриптор окна в списке диспетчера окон.

GW_OWNER

Возвратить окно-владелец или родительское окно заданного окна.

См. также

EnumWindows, EnumChildWindows

Пример

В следующем примере приложение включает в себя элемент управления редактированием в качестве дочернего окна. При выборе опции меню Test! функция GetWindow применяется для поиска дескриптора этого элемента управления редактированием, и текст в нем изменяется на "I'm Found!".

См.     \locaJ-sources\chap04\04-26.txt

GetWindowlnfo                               • Windows 98   • Windows 2000

Описание

Функция GetWindowlnfo выбирает информацию об указанном окне.

Синтаксис

BOOL GetWindowInfo( HWND hWnd, PWINDOWINFO pWlnfo )

Параметры

hWnd

HWND. Дескриптор окна, о котором должна быть выбрана информация.

pWmfo

PWINDOWINFO. Указатель на структуру WINDOWINFO, которая получает информацию об окне.

Возвращаемое значение

BOOL. В случае успеха возвращает значение TRUE; в ином случае возвращает значение FALSE.

Включаемый файл

winuser.h

См. также

CreateWindow, CreateWindowEx

Определение WINDOWINFO

typedef   struct   tagWINDOWINFO

< DWORD         cbSize ;

RECT            rcWindow; RECT          rcClient; DWORD        dwStyle ; DWORD         dwExStyle; DWORD         dwWindowStatus ; UINT            cxWindowBorders ; UINT            cyWindowBorders ; ATOM           atomWindowType; WORD          wCreatorVersion; }   WINDOWINPO,    *PWINDOWINFO;

Члены

cbSize

DWORD. Размер структуры в байтах.

re Window

RECT. Указывает координаты окна.

rcClient

RECT. Указывает координаты клиентской области.

dw Style

DWORD. Стиль окна для заданного окна. Список стилей приведен в описании функции CreateWindow в главе 3.

dwExStyle

DWORD. Расширенный стиль для заданного окна. Список расширенных стилей приведен в описании функции CreateWindowEx в главе 3.

dw Window Status

DWORD. Состояние окна. Если это значение установлено в WS_ACTIVECAPTION, окно активно; в ином случае этот член устанавливается в нуль.

ex WindowBorders

UINT. Ширина рамки окна в пикселях.

cy WindowBorders

UINT. Высота рамки окна в пикселях.

atom WindowType

АТОМ. Атомарное значение класса окна.

wCreator Version

WORD. Версия Windows приложения, которое создало окно.

GetWindowLong                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

LONG GetWindowLong( HWND hwnd, int nlndex )

Параметры

hwnd

HWND. Дескриптор окна.

nlndex

int. Смещение (с отсчетом от нуля) значения, которое необходимо выбрать, или одно из значений, перечисленных в табл. 4.12. Значение DWL_ применяется, только если hwnd является дескриптором диалогового окна.

Возвращаемое значение            :

LONG. В случае успешного выполнения возвращается указанное длинное значение; в ином случае возвращается 0.

Таблица 4. 12. Значения параметра nlndex функции GetWindowLonq

Значение

Действие

GWL_EXSTYLE

Расширенные стили окна

GWLJflNSTANCE

Дескриптор экземпляра приложения, которое создало окно

WL_HWNDPARENT

Дескриптор родительского окна

GWLJD

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

Значение

Действие

OWL STYLE

Стили окна

GWL_USEROATA

Определяемое приложением 32-разрядное значение, связанное с окном

GWL_WNDPROC

Адрес оконной процедуры (WndProc)

DWL DLGPROC

Адрес процедуры диалогового окна (DlgProc)

DWL_MSGRESULT

Возвращаемое значение сообщения, обработанного процедурой DlgProc

DWLJJSER

Дополнительная внутренняя информация приложения

Включаемый файл

winuser.h

См. также

GetWindowLongPtr, GetWindowWord, SetWindowLong, SetWindowWord, GetClassLong, GetClassWord

Пример

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

См.    \local-sources\chap04\04-27.txt

GetWindowLongPtr                           • Windows 98   • Windows 2000

Описание

Функция GetWindowLongPtr может служить для выборки информации об окне в виде указателя. Указатели и дескрипторы являются 32-разрядными для 32-разрядных версий Windows и 64-разрядными для 64-разрядных версий Windows. При выборе указателя или дескриптора вместо функции GetWindowLong следует применять эту функцию.

Синтаксис   •

LONG_PTR GetWindowLongPtr( HWND hwnd, int nlndex )

Параметры

hwnd

HWND. Дескриптор окна.

nlndex

int. Смещение (с отсчетом от нуля) значения, предназначенного для выборки, или одного из значений, перечисленных в табл. 4.15. Значения DWLP_ применяются, только если hwndявляется дескриптором диалогового окна.

Возвращаемое значение

LONG_PTR. В случае успешного выполнения, возвращается затребованное значение; в ином случае возвращается 0.

Включаемый файл

winuser.h

См. также

GetWindowLong, GetWindowWord, SetWindowLong, SetWindowWord, GetClassLong, GetClassWord

GetWindowPlacement                       • Windows 98   • Windows 2000

Описание

Функция GetWindowPlacement выбирает информацию о состоянии указанного окна (развернутое, свернутое или нормальное). Эта функция выбирает также информацию о позиции окна в каждом из этих состояний

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

Синтаксис

BOOL GetWindowPlacement( HWND hwnd, WINDOWPLACEMENT* IpWndPlc )

Параметры

hwnd

HWND. Дескриптор окна.

IpWndPlc

WINDOWPLACEMENT*. Указатель на структуру WINDOWPLACEMENT;

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

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

GetWindowRect, SetWindowPlacement, SetWindowPos

Определение W

INDOWPLACEMENT

typedef   struct   tagWINDOWPLACEMENT { UINT      length; UINT      flags ; DINT      showCmd; POINT  ptMinPosition; POINT  ptMaxPosition; RECT     rcNormalPosition; }       WINDOWPLACEMENT;

Члены

length

UINT. Размер структуры. Этот параметр должен быть инициализирован значением размера структуры перед вызовом функции GetWindowPIacement.

flags

UINT. Может быть установлен в одно или оба из значений, приведенных в табл. 4.13. Значения можно определить с использованием двоичного оператора AND (&).

showCmd

UINT. Текущее состояние показа окна. Оно может иметь одно из значений, перечисленных в табл. 4.16 (которое показано в функции ShowWindow).

Таблица 4. 13. Значения флажков WINDOWPLACEMENT

Значение

Описание

WPF_ASYNCWINDOWPLACEMENT

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

WPF_RESTORETOMAXIMIZED

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

WPF_SETMINPOSITION

Координаты в параметре ptMinPosttionявляются координатами фиксированной позиции окна в свернутом состоянии.

ptMinPosition

POINT. Левый верхний угол окна в свернутом состоянии.

ptMaxPosition

POINT. Левый верхний угол окна в развернутом состоянии.

re Normal Position

RECT. Координаты окна, когда оно показано в своих нормальных размерах.

Пример

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

См.    \local-sources\chap04\04-28.txt

GetWindowRect                               • Windows 98   • Windows 2000

Описание

Функция GetWindowRect выбирает информацию о размерах ограничительного прямоугольника окна и копирует ее в структуру RECT, указанную параметром Iprc. Координаты измеряются в пикселях относительно левого верхнего угла экрана. Функция GetWindowRect применяется для определения текущих размеров и позиции окна относительно экрана.

Синтаксис

BOOL GetWindowRect( HWND hwnd, LPRECT Iprc )

Параметры

Лита/                    

HWND. Дескриптор окна.

Iprc

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

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

GetCHentRect , GetWindowPIacement

Пример

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

Си.    \local-sources\chap04\04-29.txt

GetWindowText                               * Windows 98   * Windows 2000

Описание            "               ~   ~"        ~"    '

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

Синтаксис

int GetWindowText( HWND hwnd, LPTSTR Ipsz, int nChars )

Параметры

hwnd

HWND. Дескриптор окна или элемента управления, содержащего текст.

Ipsz

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

п Chars

int. Максимальное число символов, которое может быть скопировано в буфер. Все символы, выходящие за этот предел, будут усечены.

Возвращаемое значение

int. В случае успешного выполнения возвращаемым значением является число символов, скопированных в буфер, на который указывает параметр Ipsz, без учета нулевого признака конца. В случае неудачного выполнения или при отсутствии в окне заголовка возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

SetWindowText, GetWindowTextLength

Соответствующие сообщения

WM_GETTEXT, WM_SETTEXT

Пример

В следующем примере функция GetWindowTextLength применяется для определения длины текста окна и последующего распределения памяти с   объемом, достаточным для хранения этого текста. Функция GetWindowText выбирает заголовок окна и помещает его в распределенный буфер.

См.    \local-sources\chap04\04~30.txt

GetWindowTextLength                      • Windows 98   • Windows 2000

Описание

Функция GetWindowTextLength применяется для определения длины зато-   j ловка окна или текста элемента управления перед вызовом функции   | GetWindowText. Функция GetWindowTextLength резервирует буфер, имеющий длину, достаточную для выборки этого текста.

Синтаксис

int GetWindowTextLength( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор окна или элемента управления, содержащего текст.

Возвращаемое значение

int. В случае успешного выполнения возвращается значение длины текста. В случае неудачного выполнения или при отсутствии текста в окне возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetWindowText

Пример

См. пример для функции GetWindowText.

GetWindowThreadProcessId               • Windows 98   • Windows 2000

Описание

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

Синтаксис

DWORD GetWindowThreadProcessId( HWND hwnd, LPDWORD IpdwProcessId )

Параметры

hwnd

HWND. Дескриптор окна.

IpdwProcessId

LPDWORD. Указатель на 32-разрядное значение, в котором будет записан идентификатор процесса. Если это значение — NULL, идентификатор процесса не будет скопирован.

Возвращаемое значение

DWORD. Идентификатор нити, создавшей окно.

Включаемый файл

winuser.h

См. также

EnumThreadWindows

Пример

См. пример для функции EnumThreadWindows.

GetWindowWord                                  • Windows 98   •  Windows 2000

Описание

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

Синтаксис

WORD GetWindowWord( HWND hwnd, int nlndex )

Параметры

hwnd                         rm/мт»    п„„. ,„,.„,.„„ „„..„

HWND. Дескриптор окна.

nlndex

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

Возвращаемое значение

WORD. В случае успешного выполнения возвращается затребованное 16-разрядное значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetWindowLong, SetWindowWord, SetWindowLong

Пример

В следующем примере регистрируется новый класс окна и используется для создания всплывающего окна с дополнительными данными окна. В дополнительных данных окна устанавливается значение 20 с помощью функции SetWindowWord. При выборе опции меню Test! всплывающего окна функция GetWindowWord выбирает это установленное значение и отображает его в окне сообщения.

См.    \local-soucces\chap04\04-31.txt

IsChild                                              • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL IsChild( HWND hwndParent, HWND hwnd )

Параметры

hwndParent         ™—   - -----------------------------------

HWND. Дескриптор родительского окна.

hwnd

HWND. Дескриптор проверяемого дочернего окна.

Возвращаемое значение

BOOL. TRUE, если hwnd является дочерним для окна hwndParent, в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

EnumChildWindows, ChildWindowFromPoint, WindowFromPoint

Пример

В следующем примере функция, IsChild проверяет, является ли элемент управления редактированием дочерним окном главного окна,  когда пользователь выбирает пункт меню Test!.

См.    \local-sources\chap04\04-32.txt

Islconic                                             • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL Islconic( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор окна.

Возвращаемое значение

BOOL. TRUE, если окно в настоящее время показано в свернутом состоянии; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

GetWindowPlacement

Соответствующие сообщения

WM_SIZE

Пример

В следующем примере функция Islconic при закрытии приложения определяет, было ли приложение свернуто. Если — да, то устанавливается таймер и функция FlashWindow используется для периодической подсветки области заголовка окна до тех пор, пока пользователь не восстановит окно. В этот момент пользователь получает запрос, желает ли он закрыть приложение.

СМ.    \local-sources\chap04\04-33. txt

IsWindow                                         •  Windows 98   + Windows 2000

Описание

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

Синтаксис

BOOL IsWindow( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор проверяемого окна.

Возвращаемое значение

BOOL. TRUE, если дескриптор окна указывает на существующее окно; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

IsWindowEnabled, IsWindowVisible, DestroyWindow

Пример

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

См.    \local-sources\chap04\04-34.txt

IsWindowEnabled                              •  Windows 98   • Windows 2000

Описание

Функция IsWindowEnabled проверяет, разрешен или запрещен для ввода информации пользователем элемент управления или окно.

Синтаксис

BOOL IsWindowEnabled( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор проверяемого окна или элемента управления.

Возвращаемое значение

BOOL. TRUE, если окно разрешено; в ином случае возвращаемое значение - FALSE.

Включаемый файл

winuser.h

См. также

IsWindow, EnableWindow, IsWindowVisible

Соответствующие сообщения

WM_ENABLE

Пример

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

См.    \local-sources\chap04\04-35.txt

IsWindowUnicode                              * Windows 98   * Windows 2000

Описание

Функция IsWindowUnicode определяет, предусмотрена ли в заданном окне встроенная поддержка кода Unicode. Функция IsWindowUnicode обычно используется системой для определения того, ожидает ли оконная процедура какого-либо окна поступления параметров Unicode. Система автоматически проверяет, ожидает ли окно поступления символов Unicode, и выполняет необходимое преобразование. Функцию IsWindowUnicode приходится применять в приложении лишь в редких случаях.

Синтаксис

BOOL IsWindowUnicode( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор проверяемого окна.

Возвращаемое значение

BOOL. TRUE, если окно ожидает поступления строк Unicode; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

IsWindow

Пример

В следующем примере показана проверка окна на возможность приема строк Unicode. Окно рабочего стола в системе Windows 2000 возвращает значение TRUE и отображает окно сообщения.

См.    \local-sources\chap04\04-36.txt

IsWindowVisible                               • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL IsWindowVisible( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор проверяемого окна.

Возвращаемое значение

BOOL. TRUE, если окно было сделано видимым с помощью функции ShowWindow; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

IsWindow, IsZoomed, Islconic, ShowWindow

Пример

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

См.    \local-sourcas\chap04\04-37.txt

IsZoomed                                        • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL IsZoomed( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор окна, которое должно быть проверено.

Возвращаемое значение

BOOL. TRUE, если окно находится в развернутом состоянии; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

Islconic, IsWindowVisible, ShowWindow, CloseWedew

Соответствующие сообщения

WM_PAINT, WM_SIZE

Пример

В следующем примере главное окно переклрадсТО^Мвжду развернутым и восстановленным состоянием, когда пользователь 'выбирает пункт меню Test!.

См.    \local-sources\chap04\04-38.txt

LockSetForegroundWindow               • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL LockSetForegroundWindow( UINT nLockCode )

Параметры

nLockCode

UINT. Если этот параметр установлен в значение LSFW_LOCK, вызовы функции SetForegroundWindow запрещены. Если он установлен в LSFW_UNLOCK, вызовы функции SetForegroundWindow разрешены.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

AllowSetForegroundWindow, SetForegroundWindow

MapWindowPoints                           • Windows 98   • Windows 2000

Описание

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

Синтаксис

int MapWindowPoints( HWND hwndFrom, HWND hwndTo, LPPOINT Ippt, UINT cPoints )

Параметры

hwndfrom

HWND. Дескриптор окна, относительно которого в данный момент измеряются координаты. Если этот параметр имеет значение   NULL или HWND_DESKTOP, координаты измеряются относительно экрана.

hwndTo

HWND. Дескриптор окна, относительными которого станут координаты после преобразования. Если этот параметр имеет значение NULL или HWND_DESKTOP, координаты будут преобразованы в координаты экрана.

Ippt

LPPOINT. Указатель на массив структур POINT или структуру RECT, которая содержит координаты, предназначенные для преобразования.

cPoints

UINT. Число структур POINT, на которые указывает параметр Ippt. Если параметр Ippt указывает на структуру RECT, параметр cPoints должен иметь значение 2.

Возвращаемое значение    ;  '

int. В случае успешного выполнения младшее слою содержит число пикселей, которое должно складываться с горизонтальной координатой каждой точки, а старшее — число пикселей, которое должно складываться с вертикальной координатой каждой точки.

Включаемый файл

winuser.h

См. также

ScreenToClient, CHentToScreen

Пример

В следующем примере производится выборка экранных координат элемента управления редактированием с использованием функции GetWindowRect. Затем координаты заменяются координатами, основанным на координатах родительского окна с использованием функции MapWindowPoints.

См.    \local-sourcas\chap04\04-39.txt

MoveWinctow                                   • Windows 98   • Windows 2000

Описание

Функция MoveWindow изменяет положение и/или размеры окна. Для окна верхнего уровня координаты измеряются относительно левого верхнего угла экрана. Для дочернего окна они измеряются относительно клиентской области родительского окна.

Синтаксис

BOOL MoveWindow( HWND hwnd, int x, int y, int ex, int cy, BOOL bRepaint )

Параметры

hwnd

HWND. Дескриптор окна.

X

int. Новая координата х левого верхнего угла окна.

У

int. Новая координата у левого верхнего угла окна.

сх

int. Новое значение ширины окна.

су

int. Новое значение высоты окна.

bRepalnt

BOOL. TRUE, если окно следует перерисовать, чтобы показать новую позицию и размеры. Если это значение установлено в FALSE, не произойдет вывода ни в каком виде, и за обновление окна должно будет отвечать приложение.

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

DeferWindowPos, GetClientRect, GetWindowRect, ShowWindow, SetWindowPos

Пример

См. пример для функции GetWindowRect.

Openlcon                                          •  Windows 98   • Windows 2000

Описание

Функция Openlcon восстанавливает прежние размеры и позицию свернутого (превращенного в пиктограмму) окна. Окно после восстановления активизируется.

Синтаксис

BOOL Openlcon( HWND hWnd )

Параметры

HWnd

HWND. Дескриптор окна, которое должно оыть восстановлено и активизировано.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

ShowWindow, CloseWindow, Islconic

RealChildWindowFromPoint               • Windows 98   • Windows 2000

Описание

Функция RealChildWindowFromPoint выбирает дескриптор дочернего окна, находящегося в указанной точке.

Синтаксис

HWND ReaIChiIdWindowFromPoint( HWND hwndParent, POINT ptParentClientCoords )

Параметры

hwndParent

HWND. Дескриптор родительского окна, для которого должно быть ek.6-рано дочернее окно.

ptParentClientCm

yrds

POINT. Клиентские координаты проверяемой точки.

Возвращаемое значение

HWND. Дескриптор дочернего окна, которое содержит указанную точку. Если эту точку не содержит ни одно окно, возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

ChildWindowFromPoint

RealGetWindowClass                        • Windows 98   • Windows 2000

Описание

Функция RealGetWindowClass выбирает строку с указанием типа окна.

Синтаксис

UINT ReaIGetWindowClass( HWND hWnd, LPTSTR pszType, UINT cchType )

Параметры

hWnd

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

pszType

LPTSTR. Указатель на строку, которая принимает информацию о типе окна.

cchType

UINT. Длина буфера, указанного параметром pszType, в символах типа TCHAR.

Возвращаемое значение

UINT. В случае успешного выполнения возвращается число символов типа TCHAR, скопированных в указанный буфер; в ином случае возвращается нуль.

Включаемый файл

winuser.h

RemoveProp                                      • Windows 98   • Windows 2000

Описание

Функция   RemoveProp удаляет указанный элемент свойств из списка свойств окна и возвращает дескриптор, связанный с элементом свойств. Приложение должно освободить память, занимаемую дескриптором, сразу после удаления элемента свойств. Следует удалять только те элементы свойств,   которые  были  созданы  приложением  с  помощью  функции SetProp. Функция RemoveProp применяется, если элемент свойств больше не нужен или если происходит останов приложения. Функция RemoveProp удаляет все связанные свойства из окна и освобождает связанную с ним память перед тем, как произойдет останов приложения.

Синтаксис

HANDLE RemoveProp( HWND hwnd, LPCTSTR Ipsz )

Параметры

hwnd

HWND. Дескриптор окна, содержащего элемент свойств, который должен быть удален.

Ipsz

LPCTSTR. Указатель на символьную строку с нулевым символом в конце или на атомарное значение. Если используется атомарное значение, старшее слово должно быть установлено в 0, а младшее — должно содержать это значение.

Возвращаемое значение

HANDLE. В случае успешного выполнения — дескриптор, который связан со свойством; в ином случае возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

EnumProps, SetProp, GetProp

Пример

См. пример для функции GetProp.

SetActiveWindow                             • Windows 98   • Windows 2000

Описание

Функция SetActiveWindow делает активным окно верхнего уровня, связанное с вызывающей нитью. Активное окно — это окно верхнего уровня, которое имеет фокус ввода. Функция SetActiveWindow применяется для управления фокусом вводе окном верхнего уровня.

Синтаксис

HWND SetActiveWindow( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор окна, которое должно быть сделано активным.

Возвращаемое значение

HWND. В случае успешного выполнения — дескриптор окна, которое до этого было активным.

Включаемый файл

winuser.h

См. также

GetActiveWindow, GetLastActivePopup, EnableWindow

Пример

В следующем примере создается всплывающее дочернее окно. При выборе опции меню Test! всплывающего окна родительское окно становится активным.

LRESULT CALLBACK NewWndProc (HWND   hWnd,   UINT   uMsg,   HPARAM  wParara,   LPARAM   IParam) { switch (  uMsg  ) { case  WM_COM»ND   : switch (   LOWORD(  wParam  )    ) { case   IDM TEST   : SetActiveWindow (   GetParent(   hWnd  )   ) break;

SetClassLongF

>tr                                • Windows 98   • Windows 2000

Описание

Функция SetClassLongPtr изменяет для класса заданного окна значение, связанное со структурой WNDCLASSEX или с дополнительной памятью класса. В число элементов, которые могут быть изменены, входит оконная процедура для класса, пиктограмма, связанная с классом, цвет фона и другие элементы. Если класс имеет распределенные вместе с ним дополнительные данные, функция SetClassLongPtr позволяет изменять в этой области значения, определенные в приложении. Эта функция заменяет применявшуюся ранее функцию SetClassLong Она используется при разработке кода, который должен работать как с 32-разрядными, так и с 64-разрядными версиями Windows.

Синтаксис

LONG_PTR SetClassLongPtr( HWND hWnd, int nlndex, LONG_PTR dlNewVal )

Параметры

hwnd

HWND. Дескриптор окна с типом класса, где должны быть внесены изменения.

п Index

int. Смещение (с отсчетом от нуля) дополнительных данных класса, которые должны быть изменены, или одно из значений, приведенных в табл. 4.14.

dlNewVal

LONG_PTR. Новое 32- или 64-разрядное значение, предназначенное в качестве замены. Размер этого значения зависит от применяемой версии системы Windows.

Таблица 4. 14. Значения параметра nlndex функции SetClassLongPtr

Значение

Описание

GCL_CBCLSEXTRA

Изменить размер в байтах дополнительной памяти, связанной с классом. При этом не изменяется объем памяти, которая уже была распределена.

GCL_CBWNDEXTRA

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

GCLP_HBRBACKGROUND

Изменить дескриптор кисти цвета фона.

GCLP_HCURSOR

Изменить дескриптор курсора.

GCLP_HICON

Изменить дескриптор пиктограммы.

GCLP_HMODULE

Изменить дескриптор экземпляра модуля, в котором зарегистрирован этот класс.

GCLP_MENUNAME

Изменить адрес имени ресурса меню.

GCLP_STYLE

Изменить стиль класса окна.

GCLP_WNDPROC

Изменить адрес оконной процедуры (WndProc), связанной с классом.

Возвращаемое значение

LONG_PTR. В случае успешного выполнения возвращается предыдущее значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

SetClassWord, GetClassLongPtr, GetClassWord, RegisterClass

Пример

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

См.    \local-3ources\chap04\04-40.txt

SetClassWord                                    • Windows 98   • Windows 2000

Описание

Приложение может связать с классом окна данные. Функция SetClassWord изменяет для класса заданного окна 16-разрядное значение (слово) в дополнительной памяти окна класса.

Синтаксис

WORD SetClassWord( HWND hwnd, int nlndex, WORD wNewWord )

Параметры hwnd

HWND. Дескриптор окна типа класса, где должны быть внесены изменения.

nlndex

int. Смещение (с отсчетом от нуля) 16-разрядного значения, которое должно быть изменено.

wNewWord

WORD. Новое значение.

Возвращаемое значение

WORD. В случае успешного выполнения возвращается предыдущее значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

SetClassLong, GetClassWord, GetCIassLong, GetWindowWord, SetWindowWord

Пример

См. пример для функции GetClassWord.

SetFocus                                           • Windows 98   • Windows 2000

Описание

Функция SetFocus передает окну фокус ввода. Весь ввод с клавиатуры будет направляться в это окно до тех пор, пока фокус не получит следу-шее окно. В любой момент времени фокус ввода может иметь только одно окно.

Синтаксис

HWND SetFocus( HWND hwnd)

Параметры

hwnd

HWND. Дескриптор окна, которое должно получить фокус ввода. Если это значение — NULL, ввод с клавиатуры будет игнорироваться.

Возвращаемое значение

HWND. В случае успешного выполнения — дескриптор окна, которое перед этим имело фокус ввода. Если фокус ввода имело не окно или параметр hwnd является недопустимым, возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

GetFocus, EnableWindow

Соответствующие сообщения

WM_SETFOCUS, WM_KILLFOCUS

Пример

В следующем примере создаются два элемента управления редактированием. Когда пользователь выбирает пункт меню Test!, функция GetFocus применяется для определения того, какой элемент управления редактированием имеет фокус, и фокус передается другому элементу управления редактированием с помощью функции SetFocus.

См .    \1 ocal -sources \ chap04 \04-41.txt

SetForegroundWindow                     • Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL SetForegroundWindow( HWND hwnd )

Параметры

hwnd

HWND. Дескриптор окна, которое должно быть активизировано и переведено в режим переднего плана.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

GetForegroundWindow, AllowSetForegroundWindow, BringWindowToTop

Пример

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

LRESULT   CALLBACK  NewWndProc (HWND   hWnd,   OINT  uMsg,   WPARAM wParam,  LPARAM IParam)

{ switch (   uMsg   )

{ case  WM COMMAND    : switch (  LOWORD(  wParam  )   )

< case   IDM TEST    : SetForegroundWindow (  GetParent (   hWnd   )    ) ; break;

SetParent

• Windows 98   • Windows 2000

Описание

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

Синтаксис

HWND SetParent( HWND hwndChild, HWND kwndNewParent )

Параметры

hwndChild

HWND. Дескриптор дочернего окна.

hwndNewParent

HWND. Дескриптор нового родительского окна. Если этот параметр установлен в NULL, новым родительским окном становится окно рабочего стола.

Возвращаемое значение

HWND. В случае успешного выполнения возвращается дескриптор предыдущего родительского окна; в ином случае возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

GetParent, GetNextWindow, IsWindow

Пример

В следующем примере создаются всплывающее дочернее окно и два дочерних элемента управления редактированием. При выборе опции меню Test! в главном окне первый элемент управления редактированием перемещается во всплывающее дочернее окно путем изменения родительского окна элемента управления редактированием.

См.    \local-aourcas\chap04\04-42.txt

SetProp                                            *  Windows 98   *  Windows 2000

Описание

Каждое окно может иметь список элементов свойств, которые содержат идентификатор и дескриптор данных. Функция SetProp добавляет новый элемент свойств в список свойств окна.

Элементы свойств могут применяться для хранения данных любого типа. Элемент свойств содержит дескриптор, который может хранить дескриптор распределенной памяти или любое другое значение. В Windows 98 дескрипторы являются 32-разрядными значениями, поэтому в элементе свойств может храниться любое 32-разрядное (длинное) значение.

Синтаксис

BOOL SetProp( HWND hwnd, LPCTSTR Ipsz, HANDLE hData )

Параметры

hwnd

HWND. Дескриптор окна, в которое должен быть добавлен элемент свойств.

Ipsz

LPCTSTR. Указатель на строку с нулевым символом в конце или атомарное значение, которое содержит идентификатор строки. Если этот параметр представляет собой атомарное значение, это должно быть глобальное атомарное значение, созданное с помощью предварительного вызова функции GlobalAddAtom. Атомарное значение должно быть помещено в младшем слове параметра Ipsz', старшее слово должно быть установлено в 0.

hData

HANDLE. Значение, которое должно быть связано с элементом свойств.

Возвращаемое значение

BOOL. Если элемент свойств был добавлен к списку свойств, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

GetProp, EnumProps, RemoveProp

Пример

См. пример для функции GetProp.

SetWindowLongPtr                           • Windows 98   • Windows 2000

Описание

Функция SetWindowLongPtr изменяет значение указателя, которое связано с окном, или значение, которое находится по заданному смещению внутри дополнительных данных окна. Значение должно быть 32-разрядным в 32-разрядной версии Windows и 64-разрядным в 64-разрядной версии Windows. В каждом окне хранится информация о стиле, дескрипторе экземпляра, оконной процедуре и другие данные. Функция SetWindowLongPtr позволяет изменить любое значение, связанное с окном, или значение, установленное приложением в дополнительных данных окна. Эта функция заменяет функцию SetWindowLong. Она работает и с 32-разрядной, и с 64-разрядной версиями Windows.

Синтаксис

LONG_PTR SetWindowLongPtr( HWND hWnd, int nlndex, LONG_PTR

dlNewLong )

Параметры

hWnd

HWND. Дескриптор окна, в котором должны быть изменены данные.

nlndex

int. Смещение (с отсчетом от нуля) значения в дополнительных данных окна, которое должно быть изменено, или одно из значений, приведенных в табл. 4.15. Для диалоговых окон допустимыми являются только значения DWLP

Таблица 4. 15. Значения параметра nlndex функции SetWindowLongPtr

Значение

Описание

GWL_EXSTYLE

Изменить расширенный стиль окна

GWLP_HINSTANCE

Изменить дескриптор экземпляра приложения

GWLPJD

Изменить идентификатор окна

GWL_STYLE

Изменить стиль окна

GWLP_USERDATA

Изменить определяемое приложением 32-разрядное значение, связанное с окном

GWLP_WNDPROC

Изменить адрес оконной процедуры (WndProc)

DWLP_DLGPROC

Изменить адрес процедуры диалогового окна (DlgProc)

DWLP_MSGRESULT

Изменить возвращаемое значение сообщения, обработанного в процедуре диалогового окна

DWLP_USER

Изменить дополнительную внутреннюю информацию приложения, такую как дескрипторы или указатели

dlNewLong

LONG_PTR. Новое 32- или 64-разрядное значение.

Возвращаемое значение

LONG_PTR. В случае успешного выполнения предыдущее 32- или 64-раз-дное значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetWindowLongPtr, GetCIassLongPtr, GetClassWord, GetWindowWord, SetWindowWord

Пример

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

См.    \local-sources\chap04\04-43.txt

SetWindowPlacement                        • Windows 98   • Windows 2000

Описание

Окно может быть показано на экране как свернутое, нормальное или развернутое. Вид, в котором отображено окно, называется состоянием показа окна. Функция SetWindowPlacement позволяет приложению изменить состояние показа и позицию для каждого состояния окна.

Синтаксис

BOOL SetWindowPlacement( HWND hwnd, CONST WINDOWPLACEMENT* Ipwndpl )

Параметры

hwnd

HWND. Дескриптор окна.

Ipwndpl

CONST WINDOWPLACEMENT*. Указатель на структуру   WINDOW-PLACEMENT, которая содержит данные о новом состоянии показа и позиции окна. Подробные сведения о структуре WINDOWPLACEMENT приведены в описании функции   GetWindowPlacement.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

ShowWindow, GetWindowPlacement, Islconic, IsZoomed, IsWindowVisible, ' SetWindowPos

Пример

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

См.    \local-sources\chap04\04-44. txt

SetWindowPos                                  •  Windows 98   + Windows 2000

Описание

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

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

Синтаксис

BOOL SetWindowPos( HWND hwnd, HWND hwndlnsertAfter, int x, int y, int ex, int cy, UINT uFlags )

Параметры'

hwnd

HWND. Дескриптор перемещаемого окна.

hwndlnsertAfier

HWND. Дескриптор окна, которое предшествует окну, указанному параметром hwnd. Вместо дескриптора окна можно использовать одно из значений в табл. 4.3 (эта таблица приведена в описании функции DeferWindowPos). Этот параметр игнорируется, если в параметре nFlags установлено значение SWP_NOZORDER.

X

int. Новая координата х левого верхнего угла окна.

У

int. Новая координата у левого верхнего угла окна.

сх

int. Новая ширина окна в пикселях.

су

int. Новая высота окна в пикселях.

и Паях

UINT. Этот параметр определяет перемещение и позиционирование окна. Он может состоять из одного или нескольких значений, перечисленных в табл. 4.16, которые объединены с помощью двоичного оператора OR (|).

Таблица 4. 16. Значения параметра nRags функции SetWindowPos

Значение

Описание

SWP_ASYNCWINDOWPOS

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

SWP_DEFERERASE

Исключить возможность выработки сообщения WM_SYNCPAINT.

SWP_DRAWFRAME

Выводить вокруг окна рамку, определяемую классом окна.

SWP_FRAMECHANGED

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

SWP_HIDEW1NDOW

Скрыть окно.

Значение

Описание

SWP NOACTIVATE

Не активизировать окно.

SWP_NOCOPYBITS

Не восстанавливать содержимое клиентской области.

SWP_NOMOVE

Игнорировать параметры Жну. Будут изменены только размеры окна.

SWP_NOOWNERZORDER

Не менять позицию окна-владельца в z-порядке.

SWP_NOREDRAW

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

SWP_NOREPOSmON

То же, что и флажок SWP_NOOWNERZORDER.

SWP_NOSENDCHANGING

Исключить возможность приема окном сообщения WM_WWDOWPOSCHANGING.

SWP_NOSIZE

Игнорировать параметры сх и су. Окно будет только перемещаться.

SWP_NOZORDER

Игнорировать параметр hwndlnsertAfter.

SWP_SHOWWINDOW

Отобразить окно.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращает значение TRUE; в ином случае возвращает значение FALSE.

Включаемый файл

winuser.h

См. также

DeferWindowPos, MoveWindow

Соответствующие сообщения

WM_SIZE, WM_NCCALCSIZE, WM_MOVE

Пример

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

См.    \local-sources\chap04\04-45.txt

SetWindowText                                 •  Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL SetWindowText( HWND hwnd, LPCTSTR Ipsz )

Параметры

hwnd

HWND. Дескриптор окна или элемента управления, в котором должен быть изменен текст.

Ipsz

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит новый текст для окна или элемента управления.

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

GetWindowText

Соответствующие сообщения

WM_GETTEXT, WM_SETTEXT

Пример

В следующем примере функция SetWindowText применяется для изменения заголовка главного окна на New Title, когда пользователь выбирает пункт меню Test!.

LRESULT   CALLBACK  WndProc (   HHND   hWnd,   UINT   uMsg,   WPARAM  wParam,   LPARAM   IParam   ) { switch (   uMsg   ) < case  WM_COMMAND   : switch (   LOWORD(   wParam   )    ) { case   IDM TEST   : SetWindowText (   hWnd,   "New  Title"   ); break;

SetWindowWord                              • Windows 98   • Windows 2000

Описание

Функция SetWindowWord изменяет 16-разрядное значение (слово) по заданному смещению в дополнительной памяти окна. Приложение может создать окно со связанной с ним дополнительной памятью для хранения данных, определенных приложением. Функция SetWindowWord позволяет изменить 16-разрядное значение в дополнительных данных окна.

Синтаксис

WORD SetWindowWord( HWND hwnd, hit nhdex, WORD wNewWord )

Параметры

hwnd

HWND. Дескриптор окна, для которого должны быть изменены данные.

nlndex

int. Смещение (с отсчетом от нуля) значения, которое должно быть изменено.

wNewWord

WORD. Новое 16-разрядное значение.

Возвращаемое значение

WORD. В случае успешного выполнения — предыдущее значение; в ином случае возвращаемое значение — 0.

Включаемый файл

winuser.h

См. также

GetWindowWord, SetWindowLong, GetWindowLong

Пример

См. пример для функции GetWindowWord.

ShowOwnedPopups                           •  Windows 98   * Windows 2000

Описание

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

Синтаксис

BOOL ShowOwnedPopups( HWND hwnd, BOOL bShow )

Параметры

hwnd

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

bShow

BOOL. TRUE, если все всплывающие окна должны быть показаны, FALSE, если все всплывающие окна должны быть скрыты.

Возвращаемое значение

BOOL. TRUE, если функция была выполнена успешно, и FALSE в противном случае.

Включаемый файл

winuser.h

См. также

ShowWindow

Соответствующие сообщения

WM SHOWWINDOW

Пример

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

См.    \local-sources\chap04\04-46.txt

ShowWindow                                   • Windows 98   • Windows 2000

Описание

Функция ShowWindow устанавливает состояние показа окна. Состояние показа определяет, как окно должно быть показано на экране. Обычно после создания окна вызывают функцию ShowWindow, чтобы сделать его видимым. Функция ShowWindow также может использоваться для свертывания или развертывания окна. Эта функция не проверяет, находится ли окно на переднем плане. Для перевода окна на передний план применяется функция SetWindowPos или SetActiveWindow.

Синтаксис

BOOL ShowWindow( HWND hwnd, int nCmdShow )

Параметры

hwnd

HWND. Дескриптор окна.

nCmdShow   ,

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

Таблица 4. 17. Значения параметра nCmdShow функции ShowWindow

Значение

Описание

SW FORCEMINIMIZE

(Windows 2000) Перевести окно в свернутое состояние, даже если нить, которой принадлежит окно, зависла. Этот флажок может применяться только для свертывания окон из другой нити.

SWJflDE

Окно скрыто.

SW_MAXIMEE

Окно развернуто.

SW_MINIMIZE

Окно свернуто и активизирует окно верхнего уровня в списке системы.

SW_RESTORE

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

SW_SHOW

Окно отображается в его текущих размерах и позиции.

SW_SHOWDEFAULT

Применяется при запуске приложения для установки состояния показа на основе флажка SW_ в структуре STARTUPINFO.

Значение

Описание

SW  SHOWMAXIMIZED

Окно развернуто.

SW_SHOWMINIMIZED

Окно свернуто и показано как пиктограмма.

SW_SHOWMINNOACTIVE

Окно свернуто; активное окно остается активным.

SW_SHOWNA

Окно показано в его текущем состоянии; активное окно остается активным.

SW_SHOWNOACTIVATE

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

SW_SHOWNORMAL

Окно показано в его нормальных размерах.

Возвращаемое значение

BOOL. TRUE, если окно перед этим было видимым; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

CreateWindow, SetWindowPos, SetActiveWindow, ShowOwnedPopups, ShowWindowAsync

Соответствующие сообщения

WM SHOWWINDOW

Пример

В следующем примере функция ShowWindow применяется для развертывания приложения, когда пользователь выбирает пункт меню Test!.

LRESULT   CALLBACK  WndProc (   HWND   hWnd,   UINT   uMsg,   WPARAM  wParam,   LPARAM   IParam   ) { switch (   uMsg   ) { case  WM_COMMAND   : switch (   LOWORDf   wParam   )    ) { case   IDH TEST    : //   Развернуть  главное   окно  приложения. // ..................................... ShowWindow (   hWnd,    SW_SHOWMAXIMIZED   ) ; break ;                                ~

ShowWindowAsync                           •  Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL ShowWindowAsync( HWND hwnd, int nCmdShow )

Параметры

hwnd

HWND. Дескриптор окна.

nCmdShow

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

Возвращаемое значение

BOOL. TRUE, если окно перед этим было видимым; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

ShowWindow

 

Соответствующие сообщения

 

WM_SHOWWINDOW

 

UpdateLayeredWindow                     • Windows 98   • Windows 2000

 

Описание

Функция UpdateLayeredWindow обновляет позицию, размеры, форму, содержимое и полупрозрачность многослойного окна. Эта функция поддерживает внешний вид окна на экране. Окна, находящиеся под многослойным окном, не требуют перерисовки при переводе их в видимое состояние в результате вызова функции UpdateLayeredWindow, поскольку система перерисовывает их автоматически. Это обеспечивает безукоризненную анимацию многослойного окна. Исходный контекст устройства (DC) должен содержать поверхность, которая определяет видимое содержимое многослойного окна. Для обеспечения максимальной производительности процесса вывода многослойного окна и всех нижележащих окон многослойное окно должно быть как можно меньше. Приложение должно также обрабатывать сообщения WM_DISPLAYCHANGE и воссоздавать многослойные окна при изменении разрядности цветов дисплея.

 

Синтаксис

BOOL UpdateLayeredWindow( HWND hWnd, HDC hdcDst, POINT* pptDst, SIZE* pSize, HDC hdcSrc, POINT* pptSrc, COLORREF crKey, BLENDFUNCTION* pBlend, DWORD dwflags )

 

Параметры

 

hWnd

HWND. Дескриптор многослойного окна.

 

hdcDst

HDC. Дескриптор контекста устройства для экрана. Этот дескриптор применяется для согласования цвета палитры при обновлении содержимого окна. Если этот параметр установлен в NULL, применяется палитра, предусмотренная  по умолчанию.  Если  параметр   hdcSrc имеет значение NULL, hdcDst также должен иметь значение NULL.

 

pptDst

POINT*. Указатель на структуру POINT, которая определяет новую позицию многослойного окна на экране. Если текущая позиция не изменилась, параметр pptDst может быть установлен в NULL.

 

pSize

SIZE*. Указатель на структуру SIZE, которая определяет новые размеры многослойного окна. Если размеры окна не изменились, параметр pSize может быть установлен в NULL. Если параметр hdcSrc имеет значение NULL, pSize также должен иметь значение NULL.

 

hdcSrc

HDC. Дескриптор контекста устройства для поверхности, которая определяет многослойное окно. Этот дескриптор может быть получен путем вызова функции CreateCompatibleDC. Если форма и визуальный контекст окна не изменились, параметр hdcSrc может быть установлен в NULL.

 

pptSrc

POINT*. Указатель на структуру POINT, которая определяет местонахождение слоя в контексте устройства. Если параметр hdcSrc имеет значение NULL, pptSrc также должен быть установлен в NULL.

 

сгКеу

COLORREF. Цветовой ключ, применяемый для составления многослойного окна.

 

pBlend

BLENDFUNCTION*. Указатель на структуру BLENDFUNCTION, которая определяет значение прозрачности, применяемое при составлении многослойного окна.

 

dwFlags

DWORD. Этот параметр может иметь одно или несколько значений, перечисленных в табл. 4.18. Если параметр hdcSrc имеет значение NULL, параметр dwFlags должен быть равен нулю.

 

Таблица 4. 18. Значения параметра dwFlags функции UpdateLayeredWindow

 

Значение

Описание

 

ULW_ALPHA

Использовать pB/end в качестве функции микширования. Если дисплей работает в режиме отображения 256 или меньшего числа цветов, это значение оказывает такой же эффект, как и значение ULW  OPAQUE.

 

ULW_COLORKEY

Использовать сгКеу в качестве цвета прозрачности.

 

ULW_OPAQUE

Вывести непрозрачное многослойное окно.

 

Возвращаемое значение

BOOL. В случае успешного выполнения возвращает значение TRUE; в ином случае возвращаемое значение — FALSE.

 

Включаемый файл

winuser.h

 

См. также

CreateCompatibleDC, CreateWindowEx

 

Определения BLENDFUNCTION

typedef   struct     BLENDFUNCTION { BYTE   BlendOp ; BYTE  BlendFlags; BYTE   SourceConstantAlpha; BYTE  AlphaFormat ; }   BLENDFUNCTION;

 

Члены

 

BlendOp

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

 

BlendFlags

BYTE. Должен быть установлен в нуль.

 

Source ConstantAlpha

BYTE. Указывает значение альфа прозрачности, которое будет применяться ко всему растровому изображению источника. Это значение объединяется со всеми значениями коэффициента альфа для каждого пикселя в растровом изображении источника.  Если это значение установлено в нуль, предполагается, что изображение источника прозрачно. Это значение должно быть равным 255, только если предусмотрено применение значений коэффициента альфа для каждого пикселя.

 

Alpha Format

BYTE. Этот член определяет способ интерпретации растровых изображений источника и назначения. Если он установлен в AC_SRC_ALPHA, растровое изображение имеет альфа-канал.

 

WindowFromPoint                                • Windows 98   • Windows 2000

 

Описание            "              .....    —      — . .

Функция WindowFromPoint позволяет найти окно, содержащее заданную точку на экране.

 

Синтаксис

HWND WindowFromPoint( POINT pt )

 

Параметры

 

Р*

POINT. Структура POINT, которая содержит проверяемую точку.

 

Возвращаемое значение

HWND. Если в заданной точке находится окно, возвращаемым значением является дескриптор окна. Если окно в этой точке не найдено, возвращаемое значение — NULL.

 

Включаемый файл

winuser.h

 

См. также

ChildWindowFromPoint

 

Пример

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