Сообщения и очереди сообщений
GetQueueStatus
Функция GetQueueStatus возвращает флаги, которые показывают тип сообщений, обнаруженных в очереди сообщений вызывающего потока.
DWORD GetQueueStatus (
UINT flags // флаги состояния очереди
);
Параметры
flags ‑ определяет флаги состояния очереди, указывая типы сообщений для проверки. Может быть комбинацией следующих значений:
Значение | Пояснение |
QS_ALLEVENTS | Сообщение ввода, WM_TIMER, WM_PAINT, WM_HOTKEY или помещенное в очередь сообщение. |
QS_ALLINPUT | Любое сообщение ввода. |
QS_HOTKEY | Сообщение WM_HOTKEY . |
QS_INPUT | Сообщение ввода. |
QS_KEY | Сообщение WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP или WM_SYSKEYDOWN в очереди. |
QS_MOUSE | Сообщение WM_MOUSEMOVE или сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.). |
QS_MOUSEBUTTON | Сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.). |
QS_MOUSEMOVE | Сообщение WM_MOUSEMOVE. |
QS_PAINT | Сообщение WM_PAINT . |
QS_OSTMESSAGE | Помещенное сообщение, отличное от перечисленных выше, находится в очереди. |
QS_ENDMESSAGE | Сообщение, отправленное другим потоком или приложением, находится в очереди. |
QS_TIMER | Сообщение WM_TIMER . |
Возвращаемые значения
Старшее слово показывает типы сообщений, находящихся в очереди. Младшее слово показывает типы сообщений, которые были добавлены в очередь и все еще там находятся с момента последнего вызова функции GetQueueStatus : GetMessage или PeekMessage .
|
|
Комментарии
Присутствие флага QS_ в возвращаемом значении не гарантирует, что последующий вызов функции PeekMessage или GetMessage вернет сообщение. PeekMessage или GetMessage выполняют определенную внутреннюю фильтрацию, которая может привести ко внутренней обработке сообщения. По этой причине, возвращаемое функцией GetQueueStatus значение должно быть рассматриваемо только как намек на то, должна ли быть вызвана функция GetMessage или PeekMessage .
См. также
GetInputState, GetMessage, PeekMessage .
Кисти
CreatePatternBrush
Функция CreatePatternBrush создает логическую кисть с указанным шаблоном в виде битового изображения. Битовое изображение не может быть независимым от оборудования битовым изображением ( DIB ), которое создано функцией CreateDIBSection .
HBRUSH CreatePatternBrush (
HBITMAP hbmp // дескриптор битового изображения
);
Параметры
hbmp ‑ идентифицирует битовый образ, используемый для создания логической кисти.
Windows 95: Создание кистей из битовых образов размером более 8 x 8 пикселей не поддерживается. Если указан битовый образ большего размера, используется его часть.
Возвращаемые значения
|
|
В случае успеха возвращается дескриптор логической кисти.
В случае неудачи возвращается NULL .
Комментарии
Шаблонная кисть ‑ это битовый образ, который Windows использует для рисования внутренних частей закрашенных фигур.
После того, как приложение создало кисть, вызвав функцию CreatePatternBrush , оно может выбрать эту кисть в любой контекст устройства при помощи функции SelectObject .
Вы можете удалить шаблонную кисть без воздействия на связанный битовый образ, используя функцию DeleteObject . Таким образом, вы можете использовать этот битовый образ для создания какого угодно числа шаблонных кистей.
Кисть, созданная с использованием монохромного битового образа, имеет цвета текста и фона того контекста устройства, в котором происходит рисование. Пиксели, представляемые нулевым битом, отрисовываются текущим цветом текста; пиксели, представляемые единичным битом, отрисовываются текущим цветом фона.
Битовое изображение, идентифицируемое значением параметра hbmp , не может быть независимым от оборудования битовым изображением ( DIB ), которое создано функцией CreateDIBSection . Если оно является независимым от оборудования битовым изображением, то вызов CreatePatternBrush завершается неудачей.
|
|
См. также
CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateDIBSection, CreateHatchBrush, DeleteObject, GetBrushOrgEx, LoadBitmap, SelectObject, SetBrushOrgEx .
Библиотека оболочки
DragAcceptFiles
Функция DragAcceptFiles регистрирует окно, если оно принимает перетаскиваемые на него файлы.
VOID DragAcceptFiles (
HWND hWnd , // дескриптор окна
BOOL fAccept // опция разрешения принятия файлов
);
Параметры
hWnd ‑ идентифицирует окно, регистрируемое, если оно принимает перетаскиваемые на него файлы.
fAccept ‑ определяет, принимает ли окно, определенное параметром hWnd , перетаскиваемые на него файлы. Значение TRUE разрешает принятие файлов, значение FALSE его запрещает.
Возвращаемые значения
Функция не возвращает значения.
Комментарии
Приложение, вызывающее DragAcceptFiles со значением TRUE параметра fAccept идентифицирует себя как способное обрабатывать сообщение WM_DROPFILES от диспетчера файлов.
См . также
WM_DROPFILES.
DragFinish
Функция DragFinish освобождает память, которую Windows выделила для использования в процессе передачи имен файлов в приложение.
VOID DragFinish (
HDROP hDrop // дескриптор освобождаемой памяти
|
|
);
Параметры
hDrop ‑ идентифицирует структуру, описывающую перемещенные мышью файлы. Этот дескриптор извлекается из параметра wParam сообщения WM_DROPFILES.
Возвращаемые значения
Функция не возвращает значения.
См . также
WM_DROPFILES.
DragQueryFile
Функция DragQueryFile извлекает имена перемещенных мышью файлов.
UINT DragQueryFile (
HDROP hDrop , // дескриптор структуры для перемещенных файлов
UINT iFile , // индекс запрошенного файла
LPTSTR lpszFile , // буфер для имени файла
UINT cch // размер буфера для имени файла
);
Параметры
hDrop ‑ идентифицирует структуру, содержащую имена файлов.
iFile ‑ определяет индекс запрашиваемого файла. Если значение параметра iFile равно 0 xFFFFFFFF, DragQueryFile возвращает число перемещенных файлов. Если значение параметра iFile лежит между нулем и количеством перемещенных файлов, DragQueryFile копирует соответствующее значению им файла в буфер, указанный параметром lpszFile .
lpszFile ‑ указывает на буфер для имени перемещенного файла. Им файла представляет собой завершающуюся нулем строку. Если значение lpszFile равно NULL, DragQueryFile возвращает необходимый размер буфера в символах.
cch ‑ определяет размер буфера в символах.
Возвращаемые значения
Когда функция копирует имя файла в буфер, то возвращается число скопированных символов без учета завершающего нулевого символа.
Если значение параметра iFile равно 0 xFFFFFFFF, то возвращается число перемещенных мышью файлов.
Если значение параметра iFile лежит между нулем и количеством перемещенных файлов, и значение параметра lpszFile равно NULL, возвращается требуемый размер буфера, в символах, без учета завершающего нулевого символа.
См . также
DragQueryPoint .
DragQueryPoint
Функция DragQueryPoint возвращает позицию курсора мыши в тот момент, когда при перетаскивании файлов была отпущена левая кнопка мыши.
BOOL DragQueryPoint (
HDROP hDrop , // дескриптор структуры для перемещенных файлов
LPPOINT lppt // указатель на структуру для координат мыши
);
Параметры
hDrop ‑ идентифицирует структуру, описывающую перемещенные мышью файлы.
lppt ‑ указывает на структуру POINT , которую функция заполняет координатами мыши в тот момент, когда при перетаскивании файлов была отпущена левая кнопка мыши.
Возвращаемые значения
Если отпускание левой кнопки мыши происходит в клиентской области окна, то возвращается ненулевое значение.
Если отпускание левой кнопки мыши происходит вне клиентской области окна, то возвращается нуль.
Комментарии
Координаты курсора мыши возвращаются для окна, получающего сообщение WM _ DROPFILES .
См. также
DragQueryFile, POINT , WM_DROPFILES.
FindExecutable
Функция FindExecutable возвращает имя и дескриптор исполняемого (.ЕХЕ) файла, ассоциированного с указанным файлом.
HINSTANCE FindExecutable (
LPCTSTR lpFile , // указатель на строку с именем файла
LPCTSTR lpDirectory , // указатель на строку с директорией по
// умолчанию
LPTSTR lpResult // указатель на буфер для строки с именем
// возвращаемого .ЕХЕ файла
);
Параметры
lpFile ‑ указатель на завершающуюся нулем строку, определяющую имя файла. Файл может быть либо документом, либо исполняемым файлом.
lpDirectory ‑ указатель на завершающуюся нулем строку, определяющую директорию по умолчанию.
lpResult ‑ указатель на буфер для имени возвращаемого функцией файла. Имя файла представляет собой завершающуюся нулем строку, определяющую исполняемый файл, который запускается при открытии файла, заданного параметром lpFile .
Возвращаемые значения
В случае успеха возвращаемое значение больше 32. В случае неудачи возвращаемое значение меньше или равно 32. В следующей таблице приведены возможные ошибочные значения:
Значение | Пояснение |
0 | Недостаток памяти или ресурсов. |
31 | Отсутствует ассоциация для данного типа файлов. |
ERROR_FILE_NOT_FOUND | Указанный файл не найден. |
ERROR_PATH_NOT_FOUND | Указанный путь не найден. |
ERROR_BAD_FORMAT | Неверный формат .ЕХЕ файла (не Win32 .EXE или поврежденный файл) |
Комментарии
При возвращении параметр lpResult может содержать путь к серверу DDE, запускаемому, если не получен ответ на запрос инициации DDE‑диалога.
См . также
ShellExecute .
Заполненные фигуры
FrameRect
Функция FrameRect рисует границу вокруг заданного прямоугольника, используя указанную кисть. Ширина и высота границы всегда равны одной логической единице.
int FrameRect (
HDC hDC , // дескриптор контекста устройства
CONST RECT *lprc , // указатель на координаты прямоугольника
HBRUSH hbr // дескриптор кисти
);
Параметры
hDC ‑ идентифицирует контекст устройства, в котором будет нарисована граница.
lprc ‑ указывает на структуру типа RECT , которая содержит логические координаты верхнего левого и правого нижнего углов прямоугольника.
hbr ‑ идентифицирует кисть, используемую для рисования границы
Возвращаемые значения
В случае успеха возвращается TRUE.
В случае неудачи возвращается FALSE. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Кисть, идентифицируемая параметром hbr , должна быть создана с использованием функций CreateHatchBrush, CreatePatternBrush или CreateSolidBrush , или извлечена с использованием функции GetStockObject .
Если член bottom структуры типа RECT меньше или равен члену top , или член right меньше или равен члену left , то функция не рисует прямоугольник.
См. также
CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, GetStockObject, RECT .
Класс окна
GetClassName
Функция GetClassName извлекает имя класса, к которому принадлежит заданное окно.
int GetClassName (
HWND hWnd , // дескриптор окна
LPTSTR lpClassName , // адрес буфера для имени класса
int nMaxCount // размер буфера, в символах
);
Параметры
hWnd ‑ идентифицирует окно и, неявно, класс, к которому оно принадлежит.
lpClassName ‑ указывает на буфер, который получает строку с именем класса.
nMaxCount ‑ определяет размер буфера, указанного параметром lpClassName , в символах. Строка с именем класса усекается, если ее длина больше размера буфера.
Возвращаемые значения
В случае успеха возвращается количество скопированных в буфер символов.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
См. также
FindWindow, GetClassInfo, GetClassLong, GetClassWord .
SetClassWord
Функция SetClassWord замещает 16‑битное ( word ) значение в указанном смещении в дополнительной памяти класса для класса окна, которому принадлежит указанное окно.
WORD SetClassWord (
HWND hWnd , // дескриптор окна
int nIndex , // индекс заменяемого значения
WORD wNewWord // новое значение
);
Параметры
hWnd ‑ идентифицирует окно, и, неявно, класс, к которому принадлежит окно.
nIndex ‑ определяет отсчитываемое от нуля смещение замещаемого значения в байтах. Верные значения находятся в диапазоне от нуля до числа байт в памяти класса минус два. Например, если вы задали десять или более байт дополнительной памяти класса, восемь будет индексом пятого 16‑битного значения.
wNewWord ‑ определяет новое значение.
Возвращаемые значения
В случае успеха возвращается предыдущее значение 16‑битного целого.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Зарезервируйте дополнительную память класса указанием ненулевого значения члена cbClsExtra структуры типа WNDCLASS , используемой с функцией RegisterClass .
Значения GCW _ в Win 32 API устарели. Вы должны использовать функцию SetClassLong для устновки значений класса, ранее устанавливаемых с использованием значений GCW _ функцией SetClassWord .
См. также
GetClassLong, GetClassWord, RegisterClass, SetClassLong, WNDCLASS .
UnregisterClass
Функция UnregisterClass удаляет класс окна, освобождая память, требуемую классу.
BOOL UnregisterClass (
LPCTSTR lpClassName , // адрес строки с именем класса
HINSTANCE hInstance // дескриптор экземпляра приложения
);
Параметры
lpClassName ‑ указывает на завершающуюся нулем строку или целый атом. Если значение этого параметра является целым атомом, он должен быть глобальным атомом, созданным предыдущим вызовом функции GlobalAddAtom . Атом, 16‑битное значение, меньшее 0 xC 000, должен находиться в младшем слове lpClassName ; старшее слово должно быть равно нулю.
Если значение lpClassName является строкой, она определяет имя класса окна. Это имя класса должно быть зарегистрировано предыдущим вызовом функции RegisterClass . Регистрация системных глобальных классов, таких, как классы элементов управления, не может быть отменена.
hInstance ‑ определяет экземпляр модуля, создавшего класс.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае если класс не может быть найден или окно, созданное с этим классом, все еще существует, возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Перед вызовом этой функции приложение должно разрушить все окна, созданные с указанным классом.
Регистрация всех классов окон, которые зарегистрировало приложение, должна быть отменена при его завершении.
См. также
GlobalAddAtom, RegisterClass .
Ввод мышью
GetDoubleClickTime
Функция GetDoubleClickTime извлекает текущее время двойного щелчка мыши. Двойной щелчок ‑ это серия двух щелчков клавиши мыши; второй щелчок происходит в течение заданного времени после первого. Время двойного щелчка ‑ это максимальное число миллисекунд, которые могут пройти между первым и вторым щелчками в двойном щелчке.
UINT GetDoubleClickTime ( VOID )
Параметры
Функция не имеет параметров.
Возвращаемые значения
В случае успеха возвращается время двойного щелчка в миллисекундах.
См. также
SetDoubleClickTime .
Прямые и кривые
GetArcDirection
Функция GetArcDirection возвращает текущее направление рисования дуг для указанного контекста устройства. Функции рисования дуг и прямоугольников используют эту функцию.
int GetArcDirection (
HDC hdc // дескриптор контекста устройства
);
Параметры
hdc ‑ идентифицирует контекст устройства.
Возвращаемые значения
В случае успеха возвращается текущее направление рисования. Может принимать одно из следующих значений:
Значение | Пояснение |
AD_COUNTERCLOCKWISE | Дуги и прямоугольники рисуются против часовой стрелки. |
AD_CLOCKWISE | Дуги и прямоугольники рисуются по часовой стрелке. |
В случае ошибки возвращается нуль.
См. также
SetArcDirection .
LineDDAProc
Функция LineDDAProc является определяемой приложением функцией обратного вызова, используемой совместно с функцией LineDDA . Функция LineDDAProc используется для обработки координат. Тип LINEDDAPROC определяет указатель на эту функцию обратного вызова. LineDDAProc является "заполнителем" для имени определяемой приложением функции.
VOID CALLBACK LineDDAProc (
int X , // x ‑координата точки
int Y , // у‑координата точки
LPARAM lpData // определяемые приложением данные
);
Параметры
X ‑ определяет х‑координату текущей точки в логических единицах.
Y ‑ определяет y ‑координату текущей точки в логических единицах.
lpData ‑ указатель на определяемые приложением данные.
Возвращаемые значения
Функция не возвращает значения.
Комментарии
Приложение регистрирует функцию LineDDAProc , передавая ее адрес в функцию LineDDA .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Wingdi.h; подключать Windows.h.
См . также
LineDDA .
LineTo
Функция LineTo рисует линию из текущей позиции до указанной точки, не включая ее.
BOOL LineTo (
HDC hdc , // дескриптор контекста устройства
int nXEnd , // x ‑координата завершающей линию точки
int nYEnd // y ‑ координата завершающей линию точки
);
Параметры
hdc ‑ идентифицирует контекст устройства.
nXEnd ‑ определяет x ‑координату завершающей линию точки.
nYEnd ‑ определяет y ‑координату завершающей линию точки.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Координаты завершающей точки линии указываются в логических единицах.
Линия рисуется текущим пером, и, если перо является геометрическим пером, текущей кистью.
В случае успеха LineTo , текущая позиция устанавливается в указанную завершающую точку.
См. также
MoveToEx, Polyline, PolylineTo .
MoveToEx
Функция MoveToEx устанавливает текущей позицией указанную точку и, необязательно, возвращает предыдущую позицию.
BOOL MoveToEx (
HDC hdc , // дескриптор контекста устройства
int X , // x ‑координата новой текущей позиции
int Y , // y ‑ координата новой текущей позиции
LPPOINT lpPoint // адрес старой текущей позиции
);
Параметры
hdc ‑ идентифицирует контекст устройства.
X ‑ определяет x ‑координату новой текущей позиции в логических единицах.
Y ‑ определяет y ‑координату новой текущей позиции в логических единицах.
lpPoint ‑ указывает на структуру типа POINT , в которой хранится предыдущая текущая позиция. Если значение этого параметра равно NULL, предыдущая позиция не возвращается.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Функция MoveToEx воздействует на все функции рисования.
См. также
AngleArc, LineTo, POINT, PolyBezierTo, PolylineTo .
Polyline
Функция Polyline рисует серию отрезков прямых, соединяя точки в указанном массиве.
BOOL Polyline (
HDC hdc , // дескриптор контекста устройства
CONST POINT * lppt , // адрес массива с точками
int cPoints // количество точек в массиве
);
Параметры
hdc ‑ идентифицирует контекст устройства.
lppt ‑ указатель на массив структур типа POINT . Каждая структура в массиве идентифицирует точку в логическом пространстве.
cPoints ‑ определяет количество точек в массиве. Значение этого параметра должно быть больше или равно двум.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Линии рисуются текущим пером с первой точки через последующие. В отличие от функции LineTo , функция Polyline не использует и не обновляет текущую позицию.
См. также
LineTo, MoveToEx, POINT, PolylineTo, PolyPolyline .
PolylineTo
Функция PolylineTo рисует серию отрезков прямых, соединяя точки в указанном массиве.
BOOL PolylineTo (
HDC hdc , // дескриптор контекста устройства
CONST POINT * lppt , // адрес массива с точками
int cPoints // количество точек в массиве
);
Параметры
hdc ‑ идентифицирует контекст устройства.
lppt ‑ указатель на массив структур типа POINT . Каждая структура в массиве идентифицирует точку в логическом пространстве.
cPoints ‑ определяет количество точек в массиве.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Отрезок рисуется текущим пером из текущей позиции до первой точки, указанной значением параметра lppt . Для каждого дополнительного отрезка функция рисует от завершающей точки предыдущего отрезка до следующей точки, указанной значением параметра lppt .
PolylineTo перемешает текущую позицию в завершающую точку последнего отрезка.
Если отрезки прямых, нарисованные функцией, образуют замкнутую фигуру, то она не закрашивается.
См. также
LineTo, MoveToEx, POINT, Polyline .
PolyPolyline
Функция PolyPolyline рисует множественные серии соединенных отрезков прямых.
BOOL PolyPolyline (
HDC hdc , // дескриптор контекста устройства
CONST POINT * lppt , // адрес массива с точками
CONST DWORD * lpdwPolyPoints , // адрес массива значений
DWORD cCount // число элементов во втором массиве
);
Параметры
hdc ‑ идентифицирует контекст устройства.
lppt ‑ указатель на массив структур типа POINT . Каждая структура в массиве идентифицирует точку в логическом пространстве.
lpdwPolyPoints ‑ указывает на массив переменных, определяющих число точек в массиве lppt для соответствующей полилинии. Значение каждого элемента должно быть больше или равно двум.
cCount ‑ определяет количество элементов в массиве lpdwPolyPoints .
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Отрезки прямых рисуются текущим пером. Фигуры, образованные сегментами, не закрашиваются.
Функция не использует и не обновляет текущую позицию.
См. также
POINT, Polyline, PolylineTo .
Отсечение
ExcludeClipRect
Функция ExcludeClipRect создает новую область отсечения, которая состоит из существующей области за вычетом указанного прямоугольника.
int ExcludeClipRect (
HDC hdc , // дескриптор контекста устройства
int nLeftRect , // x ‑координата верхнего левого угла прямоугольника
int nTopRect , // y ‑координата верхнего левого угла прямоугольника
int nRightRect , // x ‑координата нижнего правого угла прямоугольника
int nBottomRect // y ‑координата нижнего правого угла прямоугольника
);
Параметры
hdc ‑ идентифицирует контекст устройства.
nLeftRect ‑ идентифицирует логическую x ‑координату верхнего левого угла прямоугольника.
nTopRect ‑ идентифицирует логическую y ‑координату верхнего левого угла прямоугольника.
nRightRect ‑ идентифицирует логическую x ‑координату нижнего правого угла прямоугольника.
nBottomRect ‑ идентифицирует логическую y ‑координату нижнего правого угла прямоугольника.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
Комментарии
Нижняя и правая грани указанного прямоугольника не исключаются из области отсечения.
См. также
IntersectClipRect .
GetClipBox
Функция GetClipBox извлекает размеры наиболее компактного ограничивающего прямоугольника, который может быть нарисован вокруг текущего видимого участка на устройстве. Видимый участок определяется текущей областью отсечения или путем ( path ) отсечения, так же, как и любые перекрывающиеся окна.
int GetClipBox (
HDC hdc , // дескриптор контекста устройства
LPRECT lprc // адрес структуры с прямоугольником
);
Параметры
hdc ‑ идентифицирует контекст устройства.
lprc ‑ указывает на структуру типа RECT , которая предназначена для получения размеров прямоугольника.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность прямоугольника отсечения и может быть одним из следующих значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
GetClipBox возвращает логические координаты, основанные на текущем контексте устройства.
См. также
RECT .
GetClipRgn
Функция GetClipRgn извлекает дескриптор, идентифицирующий текущую определяемую приложением область отсечения для указанного контекста устройства.
int GetClipRgn (
HDC hdc , // дескриптор контекста устройства
HRGN hrgn // дескриптор области
);
Параметры
hdc ‑ идентифицирует контекст устройства.
hrgn ‑ идентифицирует существующую область перед вызовом функции. После завершения работы функции значение этого параметра идентифицирует копию текущей области отсечения.
Возвращаемые значения
В случае успеха и если для указанного контекста устройства отсутствует область отсечения, возвращается нуль. В случае успеха и если для указанного контекста устройства существует область отсечения, возвращается 1.
В случае неудачи возвращается ‑1.
Комментарии
Определяемая приложением область отсечения ‑ это область, идентифицируемая функцией SelectClipRgn . Это не область отсечения, созданная вызовом функции BeginPaint .
В случае успеха значение параметра hrgn идентифицирует копию текущей области отсечения. Последующие изменения этой области не будут воздействовать на текущую область отсечения.
См. также
BeginPaint, SelectClipRgn .
GetMetaRgn
Функция GetMetaRgn извлекает текущую метаобласть для указанного контекста устройства.
int GetMetaRgn (
HDC hdc , // дескриптор контекста устройства
HRGN hrgn // дескриптор области
);
Параметры
hdc ‑ идентифицирует контекст устройства.
hrgn ‑ идентифицирует существующую область перед вызовом функции. После завершения выполнения функции значение этого параметра идентифицирует копию текущей метаобласти.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
В случае успеха значение hrgn идентифицирует копию текущей метаобласти. Последующие изменения этой копии не повлияют на текущую метаобласть.
Текущая область отсечения контекста устройства определяется пересечением его области отсечения и его метаобласти.
См. также
SetMetaRgn .
IntersectClipRect
Функция IntersectClipRect создает новую область отсечения из пересечения текущей области отсечения и указанного прямоугольника.
int IntersectClipRect (
HDC hdc , // дескриптор контекста устройства
int nLeftRect , // x ‑координата верхнего левого угла прямоугольника
int nTopRect , // y ‑координата верхнего левого угла прямоугольника
int nRightRect , // x ‑координата нижнего правого угла прямоугольника
int nBottomRect // y ‑координата нижнего правого угла прямоугольника
);
Параметры
hdc ‑ идентифицирует контекст устройства.
nLeftRect ‑ идентифицирует логическую x ‑координату верхнего левого угла прямоугольника.
nTopRect ‑ идентифицирует логическую y ‑координату верхнего левого угла прямоугольника.
nRightRect ‑ идентифицирует логическую x ‑координату нижнего правого угла прямоугольника.
nBottomRect ‑ идентифицирует логическую y ‑координату нижнего правого угла прямоугольника.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
Комментарии
Нижняя и правая грани указанного прямоугольника исключаются из области отсечения.
См . также
ExcludeClipRect .
OffsetClipRgn
Функция OffsetClipRgn перемещает область отсечения контекста устройства на указанные смещения.
int OffsetClipRgn (
HDC hdc , // дескриптор контекста устройства
int nXOffset , // смещение вдоль оси x
int nYOffset // смещение вдоль оси y
);
Параметры
hdc ‑ идентифицирует контекст устройства.
nXOffset ‑ определяет количество логических единиц для перемещения влево или вправо.
nYOffset ‑ определяет количество логических единиц для перемещения вверх или вниз.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
См. также
SelectClipRgn .
SelectClipPath
Функция SelectClipPath выбирает текущий путь ( path ) в качестве области отсечения для контекста устройства, объединяя новую область отсечения с существующей, используя указанный режим.
BOOL SelectClipPath (
HDC hdc , // дескриптор контекста устройства
int iMode // режим отсечения
);
Параметры
hdc ‑ идентифицирует контекст устройства пути.
iMode ‑ определяет способ использования пути. Допустимы следующие значения:
Значение | Пояснение |
RGN _ AND | Новая область отсечения включает пересечение (перекрывающиеся участки) текущей области отсечения и текущего пути. |
RGN _ COPY | Новой областью отсечения является текущий путь. |
RGN _ DIFF | Новая область отсечения включает участки текущей области отсечения и участки, исключенные из текущего пути. |
RGN _ OR | Новая область отсечения представляет собой объединение текущей области отсечения и текущего пути. |
RGN _ XOR | Новая область отсечения включает в себя объединение текущей области отсечения и текущего пути, но без пересекающихся участков. |
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError . GetLastError может возвращать один из следующих кодов ошибки:
ERROR_CAN_NOT_COMPLETE
ERROR_INVALID_PARAMETER
ERROR_NOT_ENOUGH_MEMORY
Комментарии
Контекст устройства, идентифицируемый значением параметра hdc , должен содержать замкнутый путь.
См. также
BeginPath, EndPath .
SelectClipRgn
Функция SelectClipRgn выбирает область в качестве текущей области отсечения для указанного контекста устройства.
int SelectClipRgn (
HDC hdc , // дескриптор контекста устройства
HRGN hrgn // дескриптор выбираемой области
);
Параметры
hdc ‑ идентифицирует контекст устройства.
hrgn ‑ идентифицирует область, которая выбирается.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
Комментарии
Используется только копия выбранной области. Сама область может быть выбрана для любого числа контекстов устройства или может быть удалена.
Функция SelectClipRgn полагает, что координаты для области являются координатами устройства.
Для удаления области отсечения контекста устройства, укажите в качестве дескриптора области NULL .
См. также
ExtSelectClipRgn .
SetMetaRgn
Функция SetMetaRgn пересекает текущую область отсечения для указанного контекста устройства с текущей метаобластью и сохраняет объединенную область как новую метаобласть для указанного контекста устройства. Область отсечения сбрасывается в нулевую область.
int SetMetaRgn (
HDC hdc // дескриптор контекста устройства
);
Параметры
hdc ‑ идентифицирует контекст устройства.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
Комментарии
Текущая область отсечения контекста устройства определяется пересечением его области отсечения и его метаобласти.
Функция SetMetaRgn должна вызываться только после того, как исходный контекст устройства приложения был сохранен функцией SaveDC .
См. также
GetMetaRgn, SaveDC .
Рисование
GetWindowRgn
Функция GetWindowRgn получает копию оконной области окна. Оконная область окна устанавливается вызовом функции SetWindowRgn . Оконная область определяет участок внутри окна, в котором операционная система выполняет рисование. Операционная система не отображает части окна, лежащие вне оконной области.
int GetWindowRgn (
HWND hWnd , // дескриптор окна. чья оконная область извлекается функцией
HRGN hRgn // дескриптор области, которая получает копию
// оконной области
);
Параметры
hWnd ‑ дескриптор окна, оконная область которого извлекается.
hrgn ‑ дескриптор области. Эта область получает копию оконной области.
Возвращаемые значения
В случае успеха возвращаемое значение определяет сложность области и может быть одним из предопределенных значений:
Значение | Пояснение |
COMPLEXREGION | Область состоит более чем из одного прямоугольника. |
ERROR | Произошла ошибка. |
NULLREGION | Пустая область. |
SIMPLEREGION | Область является одиночным прямоугольником. |
Комментарии
Координаты оконной области окна относительны верхнего левого угла окна, а не клиентской области окна.
Для установки оконной области окна используйте функцию SetWindowRgn .
См. также
SetWindowRgn .
SetRectRgn
Функция SetRectRgn преобразует указанную область в прямоугольную область с указанными координатами.
BOOL SetRectRgn (
HRGN hrgn , // дескриптор области
int nLeftRect , // x ‑координата верхнего левого угла прямоугольника
int nTopRect , // y ‑координата верхнего левого угла прямоугольника
int nRightRect , // x ‑координата нижнего правого угла прямоугольника
int nBottomRect // y ‑координата нижнего правого угла прямоугольника
);
Параметры
hrgn ‑ идентифицирует область.
nLeftRect ‑ определяет x ‑координату верхнего левого угла прямоугольной области.
nTopRect ‑ определяет y ‑координату верхнего левого угла прямоугольной области.
nRightRect ‑ определяет x ‑координату нижнего правого угла прямоугольника.
nBottomRect ‑ определяет y ‑координату нижнего правого угла прямоугольника.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Область не включает в себя нижнюю и правую границы прямоугольника.
См. также
CreateRectRgn .
UpdateWindow
Функция UpdateWindow обновляет клиентскую область указанного окна, отправляя ему сообщение WM _ PAINT, если область обновления ( update region ) окна не пуста. Функция отправляет сообщение WM _ PAINT напрямую оконной процедуре указанного окна, обходя очередь сообщений приложения. Если область обновления пуста, то сообщение не отправляется.
BOOL UpdateWindow (
HWND hWnd // дескриптор окна
);
Параметры
hWnd ‑ идентифицирует обновляемое окно.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
См. также
ExcludeUpdateRgn, GetUpdateRect, GetUpdateRgn, InvalidateRect, InvalidateRgn , WM_PAINT.
Хуки
ForegroundIdleProc
Функция‑ловушка ( hook procedure ) ForegroundIdleProc является определяемой приложением функцией обратного вызова, которую вызывает система каждый раз, когда 32‑битный поток переднего плана намеревается стать неактивным.
DWORD ForegroundIdleProc (
int code , // код хука
DWORD wParam , // не используется
LONG lParam // не используется
);
Параметры
code ‑ определяет, должна ли функция‑ловушка обработать сообщение. Если значение этого параметра HC_ACTION, то функция‑ловушка должна обработать сообщение. Если значение этого параметра отрицательное, функция‑ловушка должна передать сообщение функции CallNextHookEx без дальнейшей обработки и должна вернуть значение, возвращенное функцией CallNextHookEx .
wParam ‑ не используется.
lParam ‑ не используется.
Комментарии
Приложение устанавливает функцию‑ловушку, указывая в качестве типа хука WH_FOREGROUNDIDLE и передавая указатель на функцию‑ловушку в функцию SetWindowsHookEx .
ForegroundIdleProc является "заполнителем" для имени определяемой приложением функции.
См. также
Дата добавления: 2021-01-21; просмотров: 65; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!