次の方法で共有


InkEdit のインスタンス化

このトピックでは、 InkEdit コントロールをインスタンス化するさまざまな方法について説明します。

Visual Basic .NET と C#

Microsoft Visual Basic .NET または C# を使用している場合は、Visual Studio のツールボックスから、コントロールを表示するフォームまたはページに InkEdit コントロールをドラッグします。

Win32/C++

InkEdit コントロールは、Rich Edit 4.5 Win32 OLE 埋め込み可能コントロールのスーパークラスです。

Win32 アプリケーションは、CreateWindow() を呼び出し、ウィンドウ クラスとして INKEDIT を渡すことによって InkEdit コントロールをインスタンス化します。 INKEDIT は InkEd.h で定義されています。 コントロールが作成されたら、メッセージを使用してコントロールに "会話" できます。 リッチ エディット メッセージ (EM_*) は、InkEdit から変更されていない Rich Edit に渡されます。既存のすべてのリッチ エディット機能を使用できます。

InkEdit コントロールを作成するには、 InkEdit ウィンドウ クラスを指定して CreateWindow() 関数を呼び出します。 InkEd.dllを登録するには、 LoadLibrary() を使用します。 ウィンドウ クラス パラメーターに定義INKEDIT_CLASS定数を指定し、次の例で指定したウィンドウ スタイルを使用します。

複数行 InkEdit コントロールのインスタンス化

//...
HMODULE s_hlib;    
s_hlib= LoadLibrary("InkEd.dll");
//...
m_hwndInkEdit = CreateWindowW(INKEDIT_CLASS, NULL,
WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,
rt.left, rt.top, rt.right, rt.bottom,
m_hWnd, NULL, hInst, NULL);

Single-Line InkEdit コントロールのインスタンス化

//...
HMODULE s_hlib;    
s_hlib= LoadLibrary("InkEd.dll");
//...
m_hwndInkEdit = CreateWindowW(INKEDIT_CLASS, NULL,
WS_CHILD|WS_VISIBLE|WS_BORDER,
rt.left, rt.top, rt.right, rt.bottom,
m_hWnd, NULL, hInst, NULL);

注意

RichEdit とは異なり、InkEdit コントロールを作成する前に、必ず CoInitialize() を呼び出す必要があります。 アプリケーションのシャットダウン時 に CoUninitialize() を呼び出します。 CoUninitialize() を呼び出した後、 FreeLibrary(s_hlib) を呼び出して、InkEdit.dll ファイルの参照カウントをデクリメントする必要があります。

 

ES_NOIME ウィンドウ スタイルを使用する場合、組み込みの修正サポートは使用できません。 親ウィンドウを指定しない場合、コントロールは最上位ウィンドウとして作成され、WS_SYSMENUスタイルが追加されます。これにより、組み込みの修正サポートも無効になります。

プロジェクトへのインク コントロールの追加