我们有一个RichEdit控件,允许用户在其中插入Office MathML方程对象。
基本上逻辑是这样的:用户点击插入数学方程,我们允许他们使用外部的 MathML 编辑器,然后我们将一个图像来表示方程到 RichEdit 控件中:
' Paste the picture into the RichTextBox.
SendMessage ctlLastFocus.hwnd, WM_PASTE, 0, 0
找到它的位置并将其锁定使用:
With ctlLastFocus
'lock the image
.SelStart = .SelStart - 1
.SelLength = 1
.SelProtected = True
在美丽的 ANSI 世界里一切都很好,但我们也允许使用Unicode字符,而我注意到,当你使用汉字时,插入的位置错了总位置的一半,即如果它应该成为第 7 个位置,现在它被插入到第三个位置。
基本上除以二,我猜是因为 Unicode 需要两个字节,而 ANSI 只需要一个字节。所以因为我是一个没有RTF、RichEdit 和 Visual Basic 6 经验的傻瓜。
所以我的问题是:我可以在使用 sendMessage 行粘贴图像时更改图像的位置吗?
或者通过其他方式来控制插入到 RichEdit 框中的图像的位置?