Share via


インク コントロール

タブレット PC プラットフォームには、 InkEditInkPicture の 2 つのコントロールが用意されています。これにより、タブレット PC アプリケーションにインクと手書き認識を簡単に追加できます。 InkEdit コントロールには マネージド バージョン、 ActiveX バージョン、Win32 バージョンがあり、InkPicture にはマネージド InkPicture バージョンと ActiveX バージョンしかありません。

コントロールの主な違いは、データの保存方法です。 InkEdit コントロールは既定でインクをテキストとして保存し、InkPicture はインクをインクとして保存します。

InkEdit コントロールは、手書き認識によるテキスト入力を目的としています。 InkPicture は、注釈 (プレゼンテーション スライドやその他の画像のマーキングなど) を目的としています。

マネージド コードで、フォームのメイン スレッドと同じスレッドにインク コントロールを作成します。 InkEdit コントロールまたは InkPicture コントロールが別のスレッドで作成されている場合、アプリケーションが正しく応答しない可能性があります。

インク コントロールを作成する前に、スレッド モデルをシングルスレッド アパートメント (STA) に明示的に変更する必要があります。 これにより、メイン スレッドにコントロールが作成されます。 次のマネージド C++ コードを使用して、スレッド モデルを明示的に設定できます。

Thread::get_CurrentThread()->set_ApartmentState(ApartmentState::STA);

次のコードを使用して、C# で同じことを行うことができます。

System.Threading.Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;

マネージド コードでは、メモリ リークを回避するには、コントロールがスコープ外になる前に、イベント ハンドラーがアタッチされているタブレット PC コントロールで Dispose メソッドを明示的に呼び出す必要があります。

次のセクションでは、インク コントロールと、アプリケーションでのインク コントロールの使用について説明します。