InkCollector-Klasse

Stellt das Objekt dar, das zum Erfassen von Freihand von verfügbaren Tablet-Geräten verwendet wird.

Das Erstellen des InkCollector-Steuerelements hinter einem transparenten Steuerelement (z. B. einem GroupBox-Steuerelement mit der WS_EX_TRANSPARENT-Eigenschaft ) verhindert , dass InkCollector Freihand sammelt.

InkCollector verfügt über die folgenden Membertypen:

Ereignisse

Die InkCollector-Klasse weist diese Ereignisse auf.

Ereignis BESCHREIBUNG
CursorButtonDown Tritt auf, wenn der InkCollector eine Cursorschaltfläche erkennt, die nach unten ist.
CursorButtonUp Tritt auf, wenn der InkCollector eine Cursorschaltfläche erkennt, die aktiviert ist.
Cursordown Tritt auf, wenn die Cursorspitze die digitalisierte Tablet-Oberfläche kontaktiert.
Cursorinrange Tritt auf, wenn ein Cursor in den physischen Erkennungsbereich (Näherung) des Tablet-Kontexts eintritt.
Cursoroutofrange Tritt auf, wenn der Cursor den physischen Erkennungsbereich (Näherung) des Tablet-Kontexts verlässt.
Doubleclick Tritt auf, wenn auf das InkCollector-Objekt doppelt geklickt wird.
Geste Tritt auf, wenn eine anwendungsspezifische Geste erkannt wird.
MouseDown Tritt auf, wenn sich der Mauszeiger über das InkCollector-Objekt befindet und eine Maustaste gedrückt wird.
MouseMove Tritt auf, wenn der Mauszeiger über das InkCollector-Objekt verschoben wird.
MouseUp Tritt auf, wenn sich der Mauszeiger über das InkCollector-Objekt befindet und eine Maustaste losgelassen wird.
Mousewheel Tritt auf, wenn sich das Mausrad bewegt, während das InkCollector-Objekt den Fokus hat.
Newinairpackets Tritt auf, wenn ein In-Air-Paket angezeigt wird. Dies geschieht, wenn ein Benutzer einen Stift in der Nähe des Tablets bewegt und sich der Cursor im Fenster des InkCollector-Objekts befindet oder wenn der Benutzer eine Maus im zugeordneten Fenster des InkCollector-Objektobjekts bewegt.
Newpackets Tritt auf, wenn das InkCollector-Objekt Pakete empfängt.
Strich Tritt auf, wenn der Benutzer mit dem Zeichnen eines neuen Strichs auf einem beliebigen Tablet fertig ist.
Systemgesture Tritt auf, wenn eine Systemgeste erkannt wird.
Tabletadded Tritt auf, wenn dem System ein Tablet hinzugefügt wird.
Tabletremoved Tritt auf, wenn ein Tablet aus dem System entfernt wird.

Schnittstellen

Die InkCollector-Klasse definiert diese Schnittstellen.

Schnittstelle BESCHREIBUNG
IInkCollector Dieses Objekt implementiert die IInkCollector-COM-Schnittstelle .

Methoden

Die InkCollector-Klasse verfügt über diese Methoden.

Methode BESCHREIBUNG
GetEventInterest Ruft den aktuellen Zustand eines bestimmten InkCollector-Objektereignisses ab, d. h. ob das Ereignis überwacht oder verwendet wird.
GetGestureStatus Ruft ab, ob das InkCollector-Objekt an einer bestimmten Geste interessiert ist.
GetWindowInputRectangle Ruft das Fensterrechteck in Pixel ab, in dem Freihand gezeichnet wird.
Setalltabletsmode In diesem Modus kann das InkCollector-Objekt Freihand von jedem Tablet sammeln, das an den Tablet-PC angeschlossen ist.
SetEventInterest Ändert einen Wert, der angibt, ob ein bestimmtes Ereignis überwacht oder verwendet werden soll.
Setgesturestatus Ändert das Interesse des InkCollector-Objekts an einer bekannten Geste.
SetSingleTabletIntegratedMode In diesem Modus kann das InkCollector-Objekt Freihand nur von einem Tablet sammeln. Freihandeingaben von anderen Tablets werden vom InkCollector-Objekt ignoriert.
SetWindowInputRectangle Ändert das Fensterrechteck in Pixel, um gezeichnete Freihand dem Fenster zuzuordnen.

Eigenschaften

Die InkCollector-Klasse verfügt über diese Eigenschaften.

Eigenschaft Zugriffstyp BESCHREIBUNG
Autoredraw
Schreibgeschützt
Ruft einen Wert ab, der angibt, ob der InkCollector die Freihandfarbe neu streicht, wenn das Fenster ungültig ist, oder legt diesen fest.
CollectingInk
Schreibgeschützt
Ruft einen Wert ab, der angibt, ob freihand derzeit für ein InkCollector-Objekt gezeichnet wird.
CollectionMode
Schreibgeschützt
Ruft den Auflistungsmodus ab, der bestimmt, ob Freihand, Gesten oder beides beim Schreiben des Benutzers erkannt werden, oder legt diesen fest.
Cursor
Schreibgeschützt
Ruft die Cursors-Auflistung ab, die für die Verwendung im Freihandbereich verfügbar ist.
DefaultDrawingAttributes
Schreibgeschützt
Ruft das Standardobjekt InkDrawingAttributes ab, das die Zeichnungsattribute angibt, die beim Zeichnen und Anzeigen von Freihand verwendet werden, oder legt es fest.
DesiredPacketDescription
Schreibgeschützt
Ruft Aspekte des Pakets ab, die freihand zugeordnet sind, die für das InkCollector-Objekt gezeichnet wurden, oder legt das Interesse fest.
Dynamicrendering
Schreibgeschützt
Ruft einen Wert ab, der angibt, ob Freihand beim Zeichnen gerendert wird, oder legt ihn fest.
Aktiviert
Schreibgeschützt
Ruft einen Wert ab, der angibt, ob das InkCollector-Objekt Stifteingaben sammelt, oder legt diesen fest.
Handle
Schreibgeschützt
Ruft das Handle des Fensters ab, an das das InkCollector-Objekt angefügt ist, oder legt dieses fest.
Freihand
Schreibgeschützt
Ruft das InkDisp-Objekt ab, das dem InkCollector-Objekt zugeordnet ist, oder legt es fest.
MarginX
Schreibgeschützt
Ruft die Ränder entlang der x-Achse in Pixel ab oder legt diese fest.
MarginY
Schreibgeschützt
Ruft die Ränder entlang der y-Achse in Pixel ab oder legt diese fest.
MouseIcon
Schreibgeschützt
Ruft das aktuelle benutzerdefinierte Maussymbol ab oder legt es fest.
Mousepointer
Schreibgeschützt
Ruft einen Wert ab, der den Typ des Mauszeigers angibt, der angezeigt wird, wenn sich die Maus über einem bestimmten Teil des Objekts befindet, oder legt diesen fest.
Renderer
Schreibgeschützt
Ruft das InkRenderer-Objekt ab, das zum Zeichnen von Freihand verwendet wird, oder legt es fest.
SupportHighContrastInk
Schreibgeschützt
Ruft einen Wert ab, der angibt, ob Freihand als nur eine Farbe gerendert wird, wenn sich das System im Modus "Hoher Kontrast" befindet, oder legt diesen fest.
Tablet
Schreibgeschützt
Ruft das Tablet-Gerät ab, das das InkCollector-Objekt derzeit zum Sammeln von Eingaben verwendet.

Bemerkungen

Dieses Objekt kann instanziiert werden, indem die CoCreateInstance-Methode in C++ aufgerufen wird.

Das InkCollector-Objekt sammelt nur Freihandeingaben und Gesten, die in das bestimmte Fenster eingegeben werden, dem es zugeordnet ist. Der einzige Zweck von InkCollector besteht darin, Freihandeingaben von der Hardware (z. B. über ein IInkCursor - und IInkTablet-Objekt ) zu sammeln und an eine Anwendung zu übermitteln. Es fungiert im Wesentlichen als Quelle, die Freihand in ein oder mehrere verschiedene InkDisp-Objekte verteilt, die als Container fungieren, der die verteilte Freihandeingabe enthält.

Um einen InkCollector zu verwenden, erstellen Sie ihn, teilen Sie ihm mit, in welchem Fenster gezeichnete Freihandeingaben erfasst werden sollen, und aktivieren Sie sie. Nachdem es aktiviert wurde, kann er so festgelegt werden, dass er nur in einem von drei Modi erfasst wird (der Modus wird in der InkCollectionMode-Enumeration angegeben):

  • InkOnly, in dem ein IInkStrokeDisp-Objekt erstellt wird.
  • GestureOnly, in dem ein IInkGesture-Objekt erstellt wird.
  • InkAndGesture, bei dem ein Strich, eine Geste oder möglicherweise beides erstellt werden, je nachdem, wie die Anwendung Ereignisse behandelt.

Dies bedeutet, dass der InkCollector für jede Bewegung eines Cursors, die sich innerhalb des Bereichs eines Tablets befindet, immer entweder einen Strich oder eine Geste und manchmal beides sammelt. Die Gestenunterstützung ist mit der Microsoft-Gestenerkennung integriert.

Ein InkCollector verarbeitet alle Tablet-Eingaben. Freihand kann von allen angeschlossenen Tabletten (einschließlich der Maus) gleichzeitig gesammelt werden. Änderungen in den IInkCursor - und IInkCursorButton-Objekten können dazu führen, dass das InkCollector-Objekt ein Ereignis auslöst.

Ein InkCollector verwaltet auch die Liste der Cursor, die während seiner Existenz angezeigt werden. Wenn der InkCollector auf einen neuen Cursor trifft, wird das CursorInRange-Ereignis ausgelöst, wobei der parameter newCursor auf VARIANT_TRUE festgelegt ist. Anwendungen verwenden den InkCollector , um neue Cursor zu verwalten.

Einem bestimmten Fensterhandle können mehrere InkCollector zugeordnet werden, auch wenn sich deren Sammlungsbereiche, die im Konstruktor oder mit der SetWindowInputRectangle-Methode festgelegt sind, überlappen. Dieses Szenario funktioniert jedoch nur, wenn jeder InkCollectorSetSingleTabletIntegratedMode aufruft und ein eindeutiges Tablet verwendet. Dieses Verhalten erleichtert das Speichern von Freihand in einem separaten Objekt für jedes Tablet.

Ein Fehler tritt auf, wenn das Fenstereingaberechteck eines aktivierten InkCollectors (festgelegt mit der Enabled-Eigenschaft ) das Fenstereingaberechteck eines anderen aktivierten InkCollector überlappt.

Hinweis

Überlappungen können ohne Fehler auftreten, solange zu einem bekannten Zeitpunkt nur eines der Eingaberechtecke aktiviert ist.

Die Ereignisse MouseDown, MouseMove, MouseUp und MouseWheel geben x- und y-Koordinaten in Pixel zurück, nicht die HIMETRIC-Einheiten, die dem Freihandbereich zugeordnet sind. Dies liegt daran, dass diese Ereignisse die Mausereignisse von nicht fähigen Anwendungen ersetzen und diese Anwendungen nur Pixel verstehen.

Hinweis

Das InkCollector-Objekt kann nicht sicher in einem Nicht-UI-Thread freigegeben werden.

Um die Leistung Ihrer Anwendung zu verbessern, verwerfen Sie Ihr InkCollector-Objekt , wenn es nicht mehr benötigt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP Tablet PC Edition [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Nicht unterstützt
Header
Msinkaut.h (erfordert auch Msinkaut_i.c)
Bibliothek
InkObj.dll

Siehe auch

InkEdit-Steuerelementreferenz

InkDisp-Klasse

InkOverlay-Klasse

InkPicture-Steuerelementreferenz