У нас есть 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 символов, и я заметил, что когда вы используете китайские символы, позиция вставки неверна половина общей позиции, т.е. если она должна быть седьмой, теперь она вставляется на третью.
По сути, я делю на два, потому что Unicode занимает два байта по сравнению с ANSI, который требует только один. Потому что я - дурачок без опыта работы с RTF , RichEdit и Visual Basic 6.
Итак, мой вопрос: могу ли я изменить положение изображения, когда я вставляю его, используя строку sendMessage?
Или каким-либо другим способом управлять положением изображения, вставленного в поле RichEdit?