У нас есть элемент управления RichEdit, в который мы разрешаем пользователю вставлять объект уравнения Office MathML.Как выровнять позицию объекта палитры RichEdit в Visual Basic 6?
В принципе логика выглядит следующим образом: пользователь нажимает на вставку математического уравнения, мы позволяем им использовать внешний редактор 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?
Как вы определяете позицию вставки? Я могу видеть только код блокировки. –