问题标签 [richedit-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
443 浏览

c# - 以编程方式控制richEditText的水平滚动

我在 C# 中使用richEditText 来显示从右到左写入的 URDU 数据。并且一旦对数据控件的水平滚动进行了更改,它就会像英语或任何左侧编写脚本一样自动移动到最左侧。每次修改/更改richedit的文本等时,我都想将我的 HScroll 移动到极右。

0 投票
1 回答
343 浏览

c# - Richedit控制htmltext表格格式化

我在 C# 中使用richeditcontrol。我想在这个控件中显示一个表(html)。我做到了,但现在我想更改单元格文本的字体大小和颜色,它不起作用:/

这是我的代码:

0 投票
4 回答
780 浏览

c++ - EM_EXGETSEL 与文本选择顺序无关。如何确定一段选定文本中的插入符号位置?

当我做:

我得到选定的文本范围。但是,我想知道插入符号在此选择中的位置,即在末尾或开头。

即,用户是否选择了“向后”文本,就像从右向左拖动一样。

EM_EXGETSEL中的数字总是较小cpMin,因此显然与选择顺序无关。

在这种情况下,我显然无法获得插入符号位置EM_EXGETSEL进行比较,因为已经选择了一大块东西。

有什么方法可以获取插入符号的当前个人位置(以便我可以将其与 cpMin/cpMax 进行比较)?或者,是否有任何方法可以确定插入符号在选定文本块中的位置?

编辑:

我对为什么要这样做的解释: 我以编程方式将文本插入到只读 RichEdit 控件中,用户可以从中选择文本。但是,当在末尾添加文本时,它必须将插入符号移到末尾并插入文本,这可能在选择文本/用户当前正在选择文本时发生。

麻烦的是最后一个。在以编程方式输入文本之前和之后,我使用EM_EXGETSELand来获取和设置选定的文本。EM_EXSETSEL默认情况下,EM_EXGETSEL总是将较小的数字放在 中cpMin,这意味着如果用户当前正在向后选择文本(即从右到左),并且将文本添加到控件中,则选择区域中插入符号的位置会从开头变为最后,因为我将这些数字直接输入EM_EXSETSEL. 我知道它EM_EXSETSEL能够向后选择(我已经用 in 中的较大数字和 in 中cpMin的较小数字对此进行了测试cpMax),但EM_EXGETSEL没有表明用户已经向后选择了文本。

因此,我需要知道插入符号的位置以将其与之进行比较cpMincpMax检查它是在选择的开头还是结尾,并采取相应的行动。

0 投票
1 回答
237 浏览

c++ - CDialog::Create () 方法在 vista windows 7 32 位 PC 上失败

CDialog::Create() 在 Win7 32 位 PC 上失败,因为对话框具有 Richedit 控件。

一旦我从对话框中删除该控件,它就被创建了,但我需要 Richedit 控件。

为什么当我使用 Richedit 控件时 CDialog::Create() 会失败?我也叫“ AfxInitRichEdit2()

0 投票
1 回答
1340 浏览

c++ - 检测富编辑文本控件中的换行符

我正在尝试将输入到文本编辑控件中的一些文本拆分为单个单词以将它们放入一个数组中......任何换行符也应该放入一个数组中。问题是我在检测换行符时遇到了麻烦......

这样做的正确方法是什么?

我尝试了以下方法:

}

但这不起作用....

0 投票
1 回答
1452 浏览

c++ - 将富编辑控件中的整个文本作为 CString 获取的各种方法

我想将富编辑控件中的整个文本作为 CString 获取,从我的研究来看,似乎有六种方法可以实现这一点:

  1. GetTextRange并通过使用获取范围GetTextLength
  2. EM_GETTEXTEX
  3. GetWindowText
  4. GetDlgItemText
  5. WM_GETETXT
  6. EM_STREAMOUT

我的问题如下:

  1. 使用,和 E 等方法与使用 , 和 E 等GetTextRange消息GetWindowText有什么区别。GetDlgItemTextEM_GETTEXTEXWM_GETETXTM_STREAMOUT
  2. 你什么时候使用一种类型,什么时候使用另一种?
  3. EM_GETTEXTEX完成WM_GETETXTEM_STREAMOUT整个文本作为CString.
  4. 最后有人可以提供一个如何使用的例子EM_GETTEXTEX,或者给我指出一个在线的方向吗?
0 投票
1 回答
99 浏览

c++ - 将格式化文本输出到屏幕

我有一个存储对的向量。每对包含一个 CString 和一个布尔值。如果 CString 要加下划线,则 bool 为真,否则为假。

我想将向量中的文本输出到屏幕上,确保文本在正确的位置带有下划线。

到目前为止,我有以下代码:

但是,这根本不是下划线......谁能告诉我我做错了什么?谢谢!

0 投票
3 回答
1845 浏览

c++ - 如何自动向下滚动richedit文本框win32 c/c++

这是我将消息附加到richedit文本框的代码:

这是richedit文本框的创建窗口:

但是当文本框中的消息变得非常适合它时,它不会自动向下滚动,从而迫使用户不得不不断地向下滚动。面临此问题的所有其他参考都在 .NET 或 c# 中。我不能在追加后以某种方式将光标设置到文本框的底部吗?或类似的东西。任何帮助表示赞赏。谢谢。

编辑:我尝试添加:

在我附加代码之后,因为这是其他人的解决方案,但对我不起作用

0 投票
1 回答
503 浏览

textbox - 将 Grid 的垂直滚动位置与 RichEditBox 或 TextBox 匹配

我有一个带有RichEditBox(editor) 和Grid(MarginNotes) 的 Windows Store 应用程序。

我需要始终匹配两个元素的垂直滚动位置。这样做的目的是允许用户在文档的边缘添加注释。

我已经根据光标位置计算出注释定位 - 添加注释时,文本选择由光标之前的所有内容组成。然后将该选择添加到 aRichEditBox内的第二个不可见的StackPanel. 然后我得到ActualHeight这个控件,它给了我在网格中的注释位置。

我的问题是,当我RichEditBox向上和向下滚动时,Grid不会相应地滚动。

第一种技术

我尝试将它们都放在 aScrollViewer中,并禁用滚动RichEditBox

当我滚动到RichEditBox控件的底部并按几次 Enter 时,光标消失了。ScrollViewer不会随光标自动滚动。

我尝试添加 C# 代码来检查光标的位置,将其VerticalOffset与编辑器的高度和高度进行比较,然后相应地调整滚动。这有效,但速度非常慢。最初,KeyUp当我键入一个句子时,我将它用于使应用程序停止的事件。之后我将其设置为 5 秒计时器,但这仍然会降低应用程序的性能,并且还意味着在光标消失和RichEditBox滚动之间可能会有 5 秒的延迟。

第二种技术

我还尝试放入MarginNotes它自己的ScrollViewer,并以编程方式设置VerticalOffset基于 my RichEditBoxsViewChanged事件。

相关事件处理程序

这有效,但相当滞后,因为ViewChanged在滚动停止后,直到事件触发后才应用滚动。我尝试使用该ViewChanging事件,但由于某种原因它根本没有触发。此外,在Grid快速滚动后有时会出现错误定位。

0 投票
2 回答
277 浏览

c# - 如何在 Metro 应用程序中插入数学符号

看起来 RichEditBox 在 Windows 8 中支持数学编辑和显示http://blogs.msdn.com/b/murrays/archive/2012/03/03/richedit-8-0-preview.aspx,但是当我复制/粘贴数学MS word doc 中的方程式,它们被视为图像并且不允许编辑。

我可以在 RichEditBox 中创作数学符号/方程式吗?我可以使用它们的 Unicode 值渲染符号(通过 Windows 8.1 中的字符映射应用程序获得),但我想要高级控制,以便我可以编写复杂的方程式。