我們有一個RichEdit控件,我們允許用戶插入一個Office MathML等式對象。如何對齊Visual Basic 6中的RichEdit粘貼對象位置?
基本邏輯是這樣的:在插入數學方程式的用戶點擊,我們允許他們使用外部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字符,並且我所注意到的是,當您使用中國字,插入的位置是錯誤的總位置的一半,即如果它應該是第七位,現在插入第三位。
基本上除以2,我猜是因爲Unicode需要兩個字節,而ANSI只需要一個字節。所以,因爲我是一個沒有RTF,RichEdit和Visual Basic 6經驗的假人。
所以我的問題是:當我使用sendMessage行來粘貼圖像時,可以更改圖像的位置嗎?
或通過其他方式來控制插入到RichEdit框中的圖像的位置?
你如何確定插入位置?我只能看到鎖定代碼。 – 2009-01-30 13:37:42