Сообщения и очереди сообщений



 

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; Мы поможем в написании вашей работы!

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






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