Win32 API 日本語リファレンス
ホームUI.TabletPC › InkCollector

InkCollector

構造体
サイズx64: 0 バイト / x86: 0 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

(フィールドなし)

公式ドキュメント

利用可能なタブレット デバイスからインクを取り込むために使用されるオブジェクトを表します。

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

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

イベント

InkCollector クラスには次のイベントがあります。

イベント 説明
CursorButtonDown InkCollector がカーソル ボタンが押されていることを検出したときに発生します。
CursorButtonUp InkCollector がカーソル ボタンが離されていることを検出したときに発生します。
CursorDown カーソルの先端がデジタイザー タブレットの表面に接触したときに発生します。
CursorInRange カーソルがタブレット コンテキストの物理的な検出範囲 (近接範囲) に入ったときに発生します。
CursorOutOfRange カーソルがタブレット コンテキストの物理的な検出範囲 (近接範囲) から外れたときに発生します。
DoubleClick InkCollector オブジェクトがダブルクリックされたときに発生します。
Gesture アプリケーション固有のジェスチャが認識されたときに発生します。
MouseDown マウス ポインターが InkCollector オブジェクトの上にある状態でマウス ボタンが押されたときに発生します。
MouseMove マウス ポインターが InkCollector オブジェクトの上を移動したときに発生します。
MouseUp マウス ポインターが InkCollector オブジェクトの上にある状態でマウス ボタンが離されたときに発生します。
MouseWheel InkCollector オブジェクトがフォーカスを持っている間にマウス ホイールが動いたときに発生します。
NewInAirPackets 空中 (in-air) パケットが検出されたときに発生します。これは、ユーザーがタブレットの近くでペンを動かし、カーソルが InkCollector オブジェクトのウィンドウ内にある場合、または InkCollector オブジェクトに関連付けられたウィンドウ内でユーザーがマウスを動かした場合に起こります。
NewPackets InkCollector オブジェクトがパケットを受信したときに発生します。
Stroke ユーザーがいずれかのタブレット上で新しいストロークの描画を終了したときに発生します。
SystemGesture システム ジェスチャが認識されたときに発生します。
TabletAdded Tablet がシステムに追加されたときに発生します。
TabletRemoved Tablet がシステムから削除されたときに発生します。

インターフェイス

InkCollector クラスは次のインターフェイスを定義します。

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

メソッド

InkCollector クラスには次のメソッドがあります。

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

プロパティ

InkCollector クラスには次のプロパティがあります。

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

解説(Remarks)

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

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

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

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

InkCollector はすべてのタブレット入力を処理します。インクは、接続されているすべてのタブレット (マウスを含む) から同時に収集できます。IInkCursor オブジェクトおよび IInkCursorButton オブジェクトの変化によって、InkCollector オブジェクトがイベントを発生させることがあります。

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

コンストラクターまたは SetWindowInputRectangle メソッドで設定された収集領域が重なっている場合でも、複数の InkCollector を特定のウィンドウ ハンドルに関連付けることができます。ただし、このシナリオが機能するのは、各 InkCollectorSetSingleTabletIntegratedMode を呼び出し、それぞれ固有のタブレットを使用する場合だけです。この動作により、タブレットごとに別々のオブジェクトへインクを格納することが容易になります。

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

メモ

任意の時点で入力矩形のうち 1 つだけが有効である限り、重なりが生じてもエラーにはなりません。

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

メモ

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

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

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)