InkCollector クラス

使用可能なタブレット デバイスからインクをキャプチャするために使用されるオブジェクトを表します。

透明なコントロールの背後に InkCollector コントロールを作成すると ( WS_EX_TRANSPARENT プロパティセットを持つ GroupBox など) 、InkCollector が インクを収集できなくなります。

InkCollector には、次の種類のメンバーがあります。

イベント

InkCollector クラスには、これらのイベントがあります。

Event 説明
CursorButtonDown InkCollector が下にあるカーソル ボタンを検出したときに発生します。
CursorButtonUp InkCollector が、稼働中のカーソル ボタンを検出したときに発生します。
CursorDown カーソルの先端がデジタイズタブレットの表面に接触したときに発生します。
CursorInRange カーソルがタブレット コンテキストの物理的な検出範囲 (近接) に入ったときに発生します。
CursorOutOfRange カーソルがタブレット コンテキストの物理的な検出範囲 (近接) から離れると発生します。
Doubleclick InkCollector オブジェクトがダブルクリックされたときに発生します。
ジェスチャ アプリケーション固有のジェスチャが認識されたときに発生します。
MouseDown マウス ポインターが InkCollector オブジェクトの上にあり、マウス ボタンが押されたときに発生します。
MouseMove マウス ポインターが InkCollector オブジェクトの上に移動したときに発生します。
MouseUp マウス ポインターが InkCollector オブジェクトの上にあり、マウス ボタンが離されたときに発生します。
Mousewheel InkCollector オブジェクトにフォーカスがあるときにマウス ホイールが移動したときに発生します。
NewInAirPackets ユーザーがタブレットの近くでペンを移動し、カーソルが InkCollector オブジェクトのウィンドウ内にあるか、 InkCollector オブジェクトオブジェクトの関連付けられたウィンドウ内でマウスを移動したときに発生する、空中パケットが表示されたときに発生します。
NewPackets InkCollector オブジェクトがパケットを受信したときに発生します。
ストローク ユーザーが任意のタブレットで新しいストロークの描画を完了したときに発生します。
SystemGesture システム ジェスチャが認識されたときに発生します。
TabletAdded タブレットがシステムに追加されたときに発生します。
TabletRemoved タブレットがシステムから削除されたときに発生します。

インターフェイス

InkCollector クラスは、これらのインターフェイスを定義します。

インターフェイス 説明
IInkCollector このオブジェクトは、 IInkCollector COM インターフェイスを実装します。

メソッド

InkCollector クラスには、これらのメソッドがあります。

メソッド 説明
GetEventInterest 特定の InkCollector オブジェクト イベントの現在の状態を取得します。つまり、イベントがリッスンされているか使用されているかを取得します。
GetGestureStatus InkCollector オブジェクトが特定のジェスチャに関心があるかどうかを取得します。
GetWindowInputRectangle インクを描画するウィンドウの四角形をピクセル単位で取得します。
SetAllTabletsMode このモードを使用すると、 InkCollector オブジェクトは、タブレット PC に接続されている任意のタブレットからインクを収集できます。
SetEventInterest 特定のイベントをリッスンするか使用するかを示す値を変更します。
SetGestureStatus 既知のジェスチャで InkCollector オブジェクトの目的を変更します。
SetSingleTabletIntegratedMode このモードでは、 InkCollector オブジェクトが 1 つのタブレットからのみインクを収集できます。 InkCollector オブジェクトでは、他のタブレットからのインクは無視されます。
SetWindowInputRectangle 描画されたインクをウィンドウにマップするために使用するウィンドウの四角形をピクセル単位で変更します。

プロパティ

InkCollector クラスには、これらのプロパティがあります。

プロパティ アクセスの種類 説明
AutoRedraw
読み取り専用
ウィンドウが無効になったときに InkCollector がインクを再描画するかどうかを指定する値を取得または設定します。
CollectingInk
読み取り専用
InkCollector オブジェクトにインクが現在描画されているかどうかを示す値を取得します。
CollectionMode
読み取り専用
インク、ジェスチャ、またはその両方がユーザーの書き込みとして認識されるかどうかを決定するコレクション モードを取得または設定します。
カーソル
読み取り専用
インク領域で使用できる Cursors コレクションを取得します。
DefaultDrawingAttributes
読み取り専用
インクの描画および表示時に使用される描画属性を指定する、既定の InkDrawingAttributes オブジェクトを取得または設定します。
DesiredPacketDescription
読み取り専用
InkCollector オブジェクトに描画されたインクに関連付けられているパケットの側面を取得または設定します。
DynamicRendering
読み取り専用
インクが描画されるときにレンダリングされるかどうかを示す値を取得または設定します。
Enabled
読み取り専用
InkCollector オブジェクトがペン入力を収集するかどうかを指定する値を取得または設定します。
Handle
読み取り専用
InkCollector オブジェクトがアタッチされているウィンドウのハンドルを取得または設定します。
インク
読み取り専用
InkCollector オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。
MarginX
読み取り専用
x 軸に沿った余白をピクセル単位で取得または設定します。
MarginY
読み取り専用
y 軸に沿った余白をピクセル単位で取得または設定します。
MouseIcon
読み取り専用
現在のカスタム マウス アイコンを取得または設定します。
MousePointer
読み取り専用
オブジェクトの特定の部分にマウスを置いたときに表示されるマウス ポインターの種類を示す値を取得または設定します。
レンダラー
読み取り専用
インクの描画に使用される InkRenderer オブジェクトを取得または設定します。
SupportHighContrastInk
読み取り専用
システムがハイ コントラスト モードのときにインクを 1 色としてレンダリングするかどうかを指定する値を取得または設定します。
タブレット
読み取り専用
InkCollector オブジェクトが入力の収集に現在使用しているタブレット デバイスを取得します。

解説

このオブジェクトは、C++ で CoCreateInstance メソッドを呼び出すことによってインスタンス化できます。

InkCollector オブジェクトは、関連付けられている特定のウィンドウに入力されたインクとジェスチャのみを収集します。 InkCollector の唯一の目的は、ハードウェアからインクを収集し (たとえば、IInkCursor オブジェクトと IInkTablet オブジェクトを介して)、アプリケーションに配信することです。 基本的には、インクを 1 つまたは複数の異なる InkDisp オブジェクトに配布するソースとして機能します。これは、分散インクを保持するコンテナーとして機能します。

InkCollector を使用するには、インクを作成し、描画されたインクを収集するウィンドウを指定して有効にします。 有効にした後、3 つのモードのうち 1 つだけで収集するように設定できます (モードは InkCollectionMode 列挙で指定されます)。

  • InkOnly。 IInkStrokeDisp オブジェクトが作成されます。
  • GestureOnly。 IInkGesture オブジェクトが作成されます。
  • InkAndGesture。アプリケーションがイベントを処理する方法に応じて、ストローク、ジェスチャ、またはその両方が作成される可能性があります。

つまり、タブレットの範囲内にあるカーソルの動きごとに、 InkCollector は常にストロークまたはジェスチャを収集し、場合によっては両方を収集します。 ジェスチャのサポートは、Microsoft ジェスチャ認識エンジンを使用して組み込まれています。

InkCollector は、すべてのタブレット入力を処理します。 インクは、(マウスを含む)すべての添付タブレットから同時に収集することができます。 IInkCursor オブジェクトと IInkCursorButton オブジェクトを変更すると、InkCollector オブジェクトがイベントを発生させる可能性があります。

InkCollector は、存在中に発生するカーソルの一覧も管理します。 InkCollector が新しいカーソルを検出すると、CursorInRange イベントが発生し、newCursor パラメーターが VARIANT_TRUE に設定されます。 アプリケーションでは、 InkCollector を使用して新しいカーソルを管理します。

複数の InkCollector を特定のウィンドウ ハンドルに関連付けることができます。コレクション領域がコンストラクターで設定されている場合でも、 SetWindowInputRectangle メソッドで設定されている場合でも、重複します。 ただし、このシナリオが機能する唯一の方法は、各 InkCollector がSetSingleTabletIntegratedMode を呼び出し、一意のタブレットを使用する場合です。 この動作により、インクをタブレットごとに個別のオブジェクトに簡単に格納できます。

1 つの有効な InkCollector のウィンドウ入力四角形 ( Enabled プロパティで設定) が、有効になっている別の InkCollector のウィンドウ入力四角形と重なっている場合、エラーが発生します。

注意

入力四角形の 1 つだけが既知の時点で有効になっている限り、重複はエラーなしで発生する可能性があります。

MouseDownMouseMoveMouseUpおよび MouseWheel イベントは、インク空間に関連付けられている HIMETRIC 単位ではなく、x 座標と y 座標をピクセル単位で返します。 これは、これらのイベントがペン非対応アプリケーションのマウス イベントを置き換え、これらのアプリケーションがピクセルのみを認識するためです。

注意

InkCollector オブジェクトを UI 以外のスレッドで安全に解放することはできません。

アプリケーションのパフォーマンスを向上させるには、 InkCollector オブジェクトが不要になったら破棄します。

必要条件

要件
サポートされている最小のクライアント
Windows XP Tablet PC Edition [デスクトップ アプリのみ]
サポートされている最小のサーバー
サポートなし
Header
Msinkaut.h (Msinkaut_i.c も必要)
ライブラリ
InkObj.dll

関連項目

InkEdit コントロール リファレンス

InkDisp クラス

InkOverlay クラス

InkPicture コントロール リファレンス