实例化 InkEdit

本主题介绍实例化 InkEdit 控件的各种方法。

Visual Basic .NET 和 C#

如果使用的是 Microsoft Visual Basic .NET 或 C#,请将 InkEdit 控件从 Visual Studio 中的“工具箱”拖动到要显示控件的窗体或页面。

Win32/C++

InkEdit 控件是 Rich Edit 4.5 Win32 OLE 可嵌入控件的超类。

Win32 应用程序通过调用 CreateWindow () 并将 INKEDIT 作为窗口类传递来实例化 InkEdit 控件。 INKEDIT 在 InkEd.h 中定义。 创建控件后,可以使用消息与控件“对话”。 Rich Edit 消息 (EM_*) 未更改地从 InkEdit 传递到 Rich Edit;所有现有的 Rich Edit 功能都可用。

若要创建 InkEdit 控件,请调用 CreateWindow () 函数,指定 InkEdit 窗口类。 使用 LoadLibrary () 注册InkEd.dll。 指定窗口类参数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样式;这也禁用了内置的更正支持。

将墨迹控件添加到项目