2015-06-13 3 views
0

Я прочитал официальные документы, но до сих пор не смог понять это.Как «настроить» элемент управления RichEdit для принятия фракций?

Поскольку английский язык не является моим родным, мне сложно создать эффективный запрос Google. Я все еще пытаюсь хотя ...

Я хотел бы ввести фракции в RichEdit контроля, как на картинке ниже:

enter image description here

Можно ли это сделать? Если да, можете ли вы показать мне, как на минимально возможном примере?

+0

Вы хотите смешать фракции с другим текстом? Или вы просто хотите использовать элемент управления richedit как поле ввода фракций? В любом случае я не думаю, что это будет возможно/легко. –

+0

* Или вы просто хотите использовать элемент управления richedit как поле ввода фракций? * На данный момент пользователи просто хотят ввести математические формулы, поэтому, я думаю, ответ на ваш вопрос таков: я хочу использовать его как поле ввода фракций , – AlwaysLearningNewStuff

ответ

0

Я не думаю, что вы собираетесь работать с RichEdit - у более поздних версий есть хотя бы поддержка математического дисплея, но, как я понимаю, они не обрабатывают прямой ввод данных. По крайней мере, я не мог найти ничего в Интернете, в котором описывалось, как вы можете ввести формулу.

Если вы можете положиться на клиентов, имеющих хотя бы Windows 7, вы можете открыть панель ввода Math, которая поместит полученное уравнение в формате MathML в буфер обмена - см., Например, this blog post. Неважно, действительно ли это помогает или нет, зависит от того, что вы хотите сделать с полученным уравнением. Без лишнего контекста невозможно сказать.

EDIT1: Еще несколько предложений возникают у меня. Если вы можете положиться на установленный Microsoft Office, вы можете получить доступ к редактору Microsoft Equation Editor из OLE. Уловка в том, что это старое, и есть опасность, что они могут его отбросить, поскольку он только теперь позволяет разрешать уравнения в старых документах Word.

Более интересный подход состоял бы в том, чтобы позволить пользователю вводить какую-либо форму (например, LaTeX), а затем обрабатывать ее для создания изображения. Например, вы можете запустить уравнение через LaTeX в фоновом режиме, как это делает this website, или вы можете исследовать MathJax, который представляет собой библиотеку Javascript для визуализации уравнений - вы можете запустить это в экземпляре MSHTML. Конечно, ни одна из них не является особенно простой.

EDIT2: Если вы можете положиться на RichEdit 8 (для которого вам понадобится Windows 8 или недавняя версия Office), вы получите некоторую математическую поддержку в RichEdit. С некоторым тестированием, я могу включить линейный вход формы «M_0,3/б» в этом:

Example equation

Это используется следующий код (недавний Windows SDK требуется), чтобы создать математическую зону из текста «M_0,3/b»:

CWnd* edit = GetDlgItem(IDC_RICHEDIT); 
    CComPtr<IRichEditOle> reo; 
    edit->SendMessage(EM_GETOLEINTERFACE,0,(LPARAM)&reo); 
    CComQIPtr<ITextDocument2> doc = reo; 
    CComPtr<ITextRange2> range; 
    doc->Range2(0,0,&range); 
    range->Expand(tomStory,0); 
    range->BuildUpMath(0); 
+0

* Если вы можете положиться на клиентов, имеющих хотя бы Windows 7 * Да, я могу, это не проблема. * вы можете вскрыть панель ввода Math *. Заслуживает внимания, мне просто нужно выяснить, как генерировать ввод с клавиатуры, а не указывать устройство. * То, что действительно помогает или нет, зависит от того, что вы хотите сделать с полученным уравнением. * Я еще не решил, именно потому, что моя задача очень сложна, как вы заметили. На данный момент я заинтересован только в отображении математической формулы в управлении редактированием. – AlwaysLearningNewStuff

 Смежные вопросы

  • Нет связанных вопросов^_^