См. \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 определяет, над каким окном находится курсор. Если окно найдено, в окне сообщения отображается заголовок окна. |
|||||||||||||||||||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.