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 つだけが既知の時点で有効になっている限り、重複はエラーなしで発生する可能性があります。
MouseDown、MouseMove、MouseUp、および MouseWheel イベントは、インク空間に関連付けられている HIMETRIC 単位ではなく、x 座標と y 座標をピクセル単位で返します。 これは、これらのイベントがペン非対応アプリケーションのマウス イベントを置き換え、これらのアプリケーションがピクセルのみを認識するためです。
注意
InkCollector オブジェクトを UI 以外のスレッドで安全に解放することはできません。
アプリケーションのパフォーマンスを向上させるには、 InkCollector オブジェクトが不要になったら破棄します。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP Tablet PC Edition [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
Header |
|
ライブラリ |
|