Класс InkCollector
Представляет объект , используемый для захвата рукописного ввода с доступных планшетных устройств.
Создание элемента управления InkCollector за прозрачным элементом управления (например, GroupBox с набором свойств WS_EX_TRANSPARENT ) не позволит InkCollector собирать рукописный ввод.
InkCollector имеет следующие типы членов:
События
Класс InkCollector содержит эти события.
Событие | Описание |
---|---|
CursorButtonDown | Происходит, когда InkCollector обнаруживает неактивную кнопку курсора. |
CursorButtonUp | Происходит, когда InkCollector обнаруживает кнопку курсора, которая находится вверх. |
CursorDown | Происходит при контакте курсора с поверхностью оцифровки планшета. |
CursorInRange | Происходит, когда курсор входит в физический диапазон обнаружения (близость) контекста планшета. |
CursorOutOfRange | Происходит, когда курсор покидает физический диапазон обнаружения (близость) контекста планшета. |
Doubleclick | Происходит при двойном щелчке объекта InkCollector . |
жесты | Происходит при распознавании жеста конкретного приложения. |
MouseDown | Происходит при наведении указателя мыши на объект InkCollector и нажатии кнопки мыши. |
MouseMove | Происходит при наведении указателя мыши на объект InkCollector . |
MouseUp | Происходит при наведении указателя мыши на объект InkCollector и отпускании кнопки мыши. |
Mousewheel | Происходит при перемещении колесика мыши при фокусе объекта InkCollector . |
NewInAirPackets | Происходит при обнаружении в воздухе пакета, что происходит, когда пользователь перемещает перо рядом с планшетом, а курсор находится в окне объекта InkCollector или пользователь перемещает мышь в связанное с ним окно объекта InkCollector . |
NewPackets | Происходит, когда объект InkCollector получает пакеты. |
Инсульта | Происходит, когда пользователь завершает рисование нового росчерка на любом планшете. |
SystemGesture | Происходит при распознавании системного жеста. |
ПланшетДобавлен | Происходит при добавлении планшета в систему. |
Планшет удален | Происходит при удалении планшета из системы. |
Интерфейсы
Класс InkCollector определяет эти интерфейсы.
Интерфейс | Описание |
---|---|
IInkCollector | Этот объект реализует COM-интерфейс IInkCollector . |
Методы
Класс InkCollector содержит следующие методы.
Метод | Описание |
---|---|
GetEventInterest | Извлекает текущее состояние определенного события объекта InkCollector , то есть о том, прослушивается ли событие или используется. |
GetGestureStatus | Возвращает значение, указывая, заинтересован ли объект InkCollector в определенном жесте. |
GetWindowInputRectangle | Извлекает прямоугольник окна в пикселях, внутри которого рисуется рукописный ввод. |
SetAllTabletsMode | Этот режим позволяет объекту InkCollector собирать рукописные данные с любого планшета, подключенного к планшетному компьютеру. |
SetEventInterest | Изменяет значение, указывающее, следует ли прослушивать определенное событие или использовать его. |
SetGestureStatus | Изменяет интерес объекта InkCollector в известном жесте. |
SetSingleTabletIntegratedMode | Этот режим позволяет объекту InkCollector собирать рукописные данные только с одного планшета. Рукописный ввод с других планшетов игнорируется объектом InkCollector . |
SetWindowInputRectangle | Изменяет прямоугольник окна (в пикселях) для сопоставления нарисованного фрагмента с окном. |
Свойства
Класс InkCollector имеет эти свойства.
Свойство | Тип доступа | Описание |
---|---|---|
AutoRedraw |
Только для чтения |
Возвращает или задает значение, указывающее, перерисовывает ли inkCollector рукописный ввод, когда окно становится недействительным. |
CollectingInk |
Только для чтения |
Возвращает значение, указывающее, рисуется ли рукописный ввод в объекте InkCollector . |
CollectionMode |
Только для чтения |
Возвращает или задает режим сбора, определяющий, распознаются ли рукописные фрагменты, жесты или и то, и другое при записи пользователем. |
Курсоры |
Только для чтения |
Возвращает коллекцию Cursors , доступную для использования в области рукописного ввода. |
DefaultDrawingAttributes |
Только для чтения |
Возвращает или задает объект По умолчанию InkDrawingAttributes , который задает атрибуты рисования, используемые при рисовании и отображении рукописного ввода. |
DesiredPacketDescription |
Только для чтения |
Возвращает или задает интерес к аспектам пакета, связанного с рукописным вводом, нарисованным в объекте InkCollector . |
DynamicRendering |
Только для чтения |
Возвращает или задает значение, указывающее, отображается ли рукописный ввод при отрисовке. |
Активировано |
Только для чтения |
Возвращает или задает значение, указывающее, собирает ли объект InkCollector входные данные пером. |
Handle |
Только для чтения |
Возвращает или задает дескриптор окна, к которому присоединен объект InkCollector . |
Рукописный ввод |
Только для чтения |
Возвращает или задает объект InkDisp , связанный с объектом InkCollector . |
MarginX |
Только для чтения |
Возвращает или задает поля вдоль оси X в пикселях. |
MarginY |
Только для чтения |
Возвращает или задает поля вдоль оси Y в пикселях. |
MouseIcon |
Только для чтения |
Возвращает или задает текущий пользовательский значок мыши. |
MousePointer |
Только для чтения |
Возвращает или задает значение, указывающее тип указателя мыши, который отображается при наведении указателя мыши на определенную часть объекта. |
Обработчик |
Только для чтения |
Возвращает или задает объект InkRenderer , используемый для рисования рукописного ввода. |
SupportHighContrastInk |
Только для чтения |
Возвращает или задает значение, указывающее, отображается ли рукописный ввод только одним цветом, если система находится в режиме высокой контрастности. |
Планшет |
Только для чтения |
Возвращает планшетное устройство, которое объект InkCollector в настоящее время использует для сбора входных данных. |
Комментарии
Этот объект можно создать, вызвав метод CoCreateInstance в C++.
Объект InkCollector собирает только рукописные фрагменты и жесты, которые введены в определенное окно, с которым он связан. Единственной целью InkCollector является сбор рукописного ввода с оборудования (например, с помощью объектов IInkCursor и IInkTablet ) и их доставка в приложение. По сути, он выступает в качестве источника, который распределяет рукописный ввод в один или несколько различных объектов InkDisp , которые действуют как контейнер, в котором хранятся распределенные рукописные фрагменты.
Чтобы использовать InkCollector, вы создадите его, сообщите ему, в каком окне нужно собирать рукописный ввод, и включите его. После включения его можно задать для сбора только в одном из трех режимов (режим указан в перечислении InkCollectionMode ):
- InkOnly, в котором создается объект IInkStrokeDisp .
- GestureOnly, в котором создается объект IInkGesture .
- InkAndGesture, в котором создается росчерк, жест или, возможно, и то, и другое, в зависимости от того, как приложение обрабатывает события.
Это означает, что для каждого перемещения курсора, наступающего в пределах диапазона планшета, InkCollector всегда собирает либо росчерк, либо жест, а иногда и то и другое. Поддержка жестов встроена с помощью распознавателя жестов Майкрософт.
InkCollector обрабатывает все входные данные планшета. Рукописный ввод можно собирать одновременно со всех подключенных планшетов (включая мышь). Изменения в объектах IInkCursor и IInkCursorButton могут привести к тому, что объект InkCollector вызовет событие.
InkCollector также управляет списком курсоров, с которыми он сталкивается во время своего существования. Когда InkCollector обнаруживает новый курсор, срабатывает событие CursorInRange с параметром newCursor, для параметра VARIANT_TRUE. Приложения используют InkCollector для управления новыми курсорами.
С определенным дескриптором окна можно связать несколько объектов InkCollector , даже если области их коллекции, заданные в конструкторе или с методом SetWindowInputRectangle , перекрываются. Однако этот сценарий работает только в том случае, если каждый объект InkCollector вызывает SetSingleTabletIntegratedMode и использует уникальный планшет. Такое поведение упрощает хранение рукописного ввода в отдельном объекте для каждого планшета.
Ошибка возникает, если входной прямоугольник окна одного включенного объекта InkCollectors (заданный свойством Enabled ) перекрывает входной прямоугольник окна другого включенного объекта InkCollector.
Примечание
Перекрытие может происходить без ошибок, если только один из входных прямоугольников включен в любое известное время.
События MouseDown, MouseMove, MouseUp и MouseWheel возвращают координаты x и y в пикселях, а не единицы HIMETRIC, связанные с пространством рукописного ввода. Это связано с тем, что эти события заменяют события мыши в приложениях, не использующих перо, и эти приложения понимают только пиксели.
Примечание
Объект InkCollector не может быть безопасно освобожден в потоке, отличном от пользовательского интерфейса.
Чтобы повысить производительность приложения, удалите объект InkCollector , когда он больше не нужен.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP Tablet PC Edition [только классические приложения] |
Минимальная версия сервера |
Ни одна версия не поддерживается |
Заголовок |
|
Библиотека |
|