CopyCursor, DrawIcon, DrawIconEx. 2 страница



Для преобразования значения WORD в строку, которая может быть добавлена функцией GlobalAddAtom в таблицу атомов, может быть использован макрос MAKEINTATOM .

 

См . также

 

AddAtom, DeleteAtom, FindAtom, GetAtomName, GlobalDeleteAtom, GlobalFindAtom, GlobalGetAtomName, MAKEINTATOM .

 

 

GlobalDeleteAtom

 

 

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

 

ATOM GlobalDeleteAtom (

 

ATOM  nAtom // удаляемый атом

);

 

Параметры

 

nAtom ‑ идентифицирует удаляемые атом и строку символов.

 

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

 

В случае успеха возвращается нуль.

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

 

Комментарии

 

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

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

Вызов GlobalDeleteAtom не воздействует на целый атом (атом, созданный макросом MAKEINTATOM ). Функция всегда возвращает нуль для целого атома.

 

См. также

 

AddAtom, DeleteAtom, FindAtom, GlobalAddAtom, GlobalFindAtom, MAKEINTATOM .

 

 

GlobalFindAtom

 

 

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

 

ATOM GlobalFindAtom (

 

LPCTSTR  lpString // указатель на строку поиска

);

 

Параметры

 

lpString ‑ указывает на завершающуюся нулем строку символов.

 

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

 

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

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

 

Комментарии

 

Несмотря на то, что Windows сохраняет регистр строки в таблице атомов, поиск, выполняемый функцией GlobalFindAtom , не чувствителен к регистру.

 

См. также

 

AddAtom, DeleteAtom, FindAtom, GetAtomName, GlobalAddAtom, GlobalDeleteAtom, GlobalGetAtomName .

 

 

GlobalGetAtomName

 

 

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

 

UINT GlobalGetAtomName (

 

ATOM  nAtom , // идентификатор атома

LPTSTR  lpBuffer , // указатель на буфер для строки

int  nSize // размер буфера

);

 

Параметры

 

nAtom ‑ идентифицирует глобальный атом, связанный с извлекаемой строкой символов.

lpBuffer ‑ указывает на буфер для строки символов.

nSize ‑ указывает размер буфера в символах.

 

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

 

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

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

 

Комментарии

 

Строка, возвращаемая для целого атома (атома, созданного макросом MAKEINTATOM ), представляет собой завершающуюся нулем строку, в которой первым символом является символ фунта ('#'), а оставшиеся символы ‑ беззнаковое целое, первоначально переданное в макрос MAKEINTATOM .

 

См. также

 

AddAtom, DeleteAtom, FindAtom, GlobalAddAtom, GlobalDeleteAtom, GlobalFindAtom, MAKEINTATOM .

 

 

InitAtomTable

 

 

Функция InitAtomTable инициализирует таблицу локальных атомов и задает ее размер.

 

BOOL InitAtomTable (

 

DWORD  nSize // размер таблицы атомов

);

 

Параметры

 

nSize ‑ задает размер, в количестве элементов, таблицы атомов. Этот параметр должен представлять собой простое число.

 

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

 

В случае успеха возвращается ненулевое значение.

В случае неудачи возвращается нуль.

 

Комментарии

 

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

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

Размер таблицы глобальных атомов не может быть изменен.

 

См. также

 

AddAtom, DeleteAtom, FindAtom, GetAtomName, GlobalAddAtom, GlobalDeleteAtom, GlobalFindAtom, GlobalGetAtomName .

 

Макросы

 

MAKEINTATOM

 

 

Макрос MAKEINTATOM создает целый атом, который представляет символьную строку десятичных цифр.

Целые атомы, созданные этим макросом, могут быть добавлены в таблицу атомов, используя функции AddAtom или GlobalAddAtom .

 

LPTSTR MAKEINTATOM (

 

WORD  wInteger // целое для создания атома

);

 

Параметры

 

wInteger ‑ определяет числовое значение, из которого создается целый атом.

 

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

 

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

 

Комментарии

 

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

Вызовы функций DeleteAtom и GlobalDeleteAtom всегда успешны для целых атомов.

Строка, возвращаемая функциями GetAtomName и GlobalGetAtomName для целых атомов, является завершающейся нулем строкой, в которой первый символ ‑ это символ '#', а оставшиеся символы ‑ десятичные цифры, используемые в макросе MAKEINTATOM .

 

Макрос MAKEINTATOM определен следующим образом:

 

#define MAKEINTATOM(i) (LPTSTR) ((DWORD) ((WORD) (i)))

 

См. также

 

AddAtom, DeleteAtom, GetAtomName, GlobalAddAtom, GlobalDeleteAtom, GlobalGetAtomName .

 

 

Окна

 

AdjustWindowRect

 

 

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

 

BOOL AdjustWindowRect (

 

LPRECT  lpRect , // указатель на структуру с координатами

// клиентской области

DWORD  dwStyle , // стили окна

BOOL  bMenu // флаг наличия меню

);

 

Параметры

 

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

dwStyle ‑ определяет стили окна, размер которого вычисляется.

bMenu ‑ определяет наличие меню у окна.

 

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

 

В случае успеха возвращается ненулевое значение.

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

 

Комментарии

 

Клиентский прямоугольник ‑ это наименьший прямоугольник, который полностью содержит в себе клиентскую область окна. Оконный прямоугольник ‑ это наименьший прямоугольник, который полностью содержит в себе само окно.

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

 

См. также

 

AdjustWindowRectEx, CreateWindowEx, RECT .

 

 

AdjustWindowRectEx

 

 

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

 

BOOL AdjustWindowRectEx (

 

LPRECT  lpRect , // указатель на структуру с координатами

// клиентской области

DWORD  dwStyle , // стили окна

BOOL  bMenu , // флаг наличия меню

DWORD  dwExStyle // расширенный стиль

);

 

Параметры

 

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

dwStyle ‑ определяет стили окна, размер которого вычисляется.

bMenu ‑ определяет наличие меню у окна.

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

 

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

 

В случае успеха возвращается ненулевое значение.

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

 

Комментарии

 

Клиентский прямоугольник ‑ это наименьший прямоугольник, который полностью содержит в себе клиентскую область окна. Оконный прямоугольник ‑ это наименьший прямоугольник, который полностью содержит в себе само окно.

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

 

См . также

 

AdjustWindowRect, CreateWindowEx, RECT .

 

ArrangeIconicWindows

 

 

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

 

UINT ArrangeIconicWindows (

 

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

);

 

Параметры

 

hWnd ‑ идентифицирует родительское окно.

 

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

 

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

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

 

Комментарии

 

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

Приложение отправляет сообщение WM _ MDIICONARRANGE MDI ‑окну для упорядочивания его минимизированных дочерних MDI ‑окон.

 

См. также

 

CloseWindow, GetDesktopWindow .

 

 

BeginDeferWindowPos

 

 

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

 

HDWP BeginDeferWindowPos (

 

int  nNumWindows // количество окон

);

 

Параметры

 

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

 

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

 

В случае успеха возвращается идентификатор структуры.

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

 

Комментарии

 

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

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

Если одно из окон, описанных в структуре, имеет установленный флаг SWP _ HIDEWINDOW или SWP _ SHOWWINDOW, то не репозиционируется ни одно из окон.

Если Windows должна увеличить размер структуры по сравнению с начальным размером, задающимся значением параметра nNumWindows , но не может выделить достаточно памяти, то вся последовательность перемещений окон ( BeginDeferWindowPos, DeferWindowPos и EndDeferWindowPos ) заканчивается неудачей. Указанием максимально необходимого размера структуры приложение может выявить и обработать сбой в самом начале всего процесса.

 

См. также

 

DeferWindowPos, EndDeferWindowPos, SetWindowPos .

 

 

BringWindowToTop

 

 

Функция BringWindowToTop помещает указанное окно в вершину Z ‑последовательности. Если окно является окном верхнего уровня ‑ оно активизируется. Если окно представляет собой дочернее окно ‑ активизируется родительское окно верхнего уровня.

 

BOOL BringWindowToTop (

 

HWND  hWnd // дескриптор окна

);

 

Параметры

 

hWnd ‑ идентифицирует окно, помещаемое в вершину Z ‑последовательности.

 

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

 

В случае успеха возвращается ненулевое значение.

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

 

Комментарии

 

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

Результат вызова этой функции похож на результат вызова SetWindowPos для изменения позиции окна в Z ‑последовательности, но вызов BringWindowToTop не делает указанное окно окном верхнего уровня.

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

 

См. также

 

SetWindowPos, SetActiveWindow, SetForegroundWindow .

 

 

CascadeWindows

 

 

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

 

WORD WINAPI CascadeWindows (

 

HWND  hwndParent , // дескриптор родительского окна


Дата добавления: 2021-01-21; просмотров: 43; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!