1

我在我的应用程序中使用扩展的 RichTextBox 控件来生成带有嵌入图像的 RTF 文档。我将图像嵌入为 EMF 元文件{\pict\wmetafile8\picw[A]\pich[B]\picwgoal[C]\pichgoal[D]...

在 Windows XP SP1、Windows Vista 和 Windows 7 中,文档生成正确,我不仅可以看到文档中的图像,还可以看到表格中包含的图像。

但是,在 Windows 8 中运行应用程序时,我只能看到嵌入的图像,前提是它们不包含在表格中。

我了解 Windows 8 使用新版本的 RichEdit 控件,并且我怀疑我的应用程序没有在 msftedit.dll 中找到 RICHEDIT50W,因此为了向后兼容而回退到 Windows 8 包含的旧版本。

这是我的扩展 RichTextBox 控件用于加载相应库的代码:

Private Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
End Function

Protected Overrides ReadOnly Property CreateParams() As CreateParams
    Get
        Dim lResult As IntPtr = LoadLibrary("msftedit.dll")
        If lResult = IntPtr.Zero Then
            MessageBox.Show(Marshal.GetLastWin32Error().ToString())
        End If
        Dim cp As CreateParams = MyBase.CreateParams
        cp.ClassName = "RICHEDIT50W"
        Return cp
    End Get
End Property

如果不寻找正确的值,应该cp.ClassName在 Windows 8 中加载适当的基本控件,或者在表格中嵌入图像是在新编辑器中丢失的东西?

4

1 回答 1

1
  • 打开写字板
  • 打开 spy++(通常与 VS 捆绑)
  • 按 Ctrl + F (或单击搜索)
  • 从写字板富文本控件的搜索窗口中拖放靶心
  • spy++ 将显示richedit 类名
于 2014-02-18T07:52:16.453 回答