问题标签 [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 回答
123 浏览

windows - 无法使用 AutoIt v3.3.8.1 创建多个 Rich Edits

我正在使用 AutoIt v3.3.8.1 来实现 Win2K 兼容性。我正在尝试创建一个包含多个 Rich Edits 的表单。相关代码部分如下:

当我运行脚本时,只有第一个声明的富编辑可见。其余的似乎根本没有创建。这里有什么问题,我该如何纠正?

0 投票
1 回答
54 浏览

devexpress - 在 DevExpress RichTextEdit 中呈现分页符

我希望能够向RichEditControl元素添加和删除分页符。

我知道可以通过按 Ctrl + Enter 来添加分页符,但是用户不可能看到分页符并将其删除,因为它目前看起来像是一个简单的新行。

我尝试使用DXRichEditFormattingMarkVisibilityOptions来显示分隔符,认为它会显示分页符,但没有运气:

有什么方法可以在页面中呈现分页符RichEditControl并让它很容易被用户删除?

0 投票
3 回答
223 浏览

c++ - 富编辑控件在出现拼写检查下划线时发送 EN_CHANGE

假设您刚刚在启用拼写检查的富编辑控件中设置了一些文本,并且该文本有一些拼写错误。一瞬间,拼写检查将启动,然后拼写错误的文本将加下划线。但是你猜怎么着:富编辑控件实际上EN_CHANGE只会为下划线事件发送一个通知(假设您已经通过 do 注册了通知SendMessage(hwnd, EM_SETEVENTMASK, 0, (LPARAM)ENM_CHANGE))。

有没有一种解决方法可以避免这种行为?我有一个带有一些启用拼写检查的富编辑控件的对话框。而且我还想知道编辑事件何时发生,所以我知道何时启用“保存”按钮。EN_CHANGE因此,仅针对拼写检查下划线事件获取通知是一个问题。

我考虑过的一个选项是 EN_CHANGE完全禁用通知,然后在子类富编辑控件中自行触发它们。例如,当有 a 时WM_CHAR,它会显式发送 EN_CHANGE通知等。但这似乎是个问题,因为有许多类型的事件应该触发更改,如删除、复制/粘贴等,我可能会没有正确捕获所有这些。

我考虑过的另一个选项是EN_CHANGE动态启用和禁用通知。例如,仅在有焦点时启用它们,并在焦点被杀死时禁用它们。但这似乎也有问题,因为富编辑在设置其文本时可能已经具有焦点。然后会出现拼写检查下划线,并且EN_CHANGE会发送不需要的通知。

我想也可以使用计时器,但我认为这很容易出错。

有人有其他想法吗?

这是一个可重现的示例。只需运行它,它就会说发生了一些变化:

此外,似乎使用EM_SETMODIFYEM_GETMODIFY没有帮助。我猜拼写检查下划线会导致 a EM_SETMODIFY,因此在处理程序中检查该标志是无用的。

0 投票
1 回答
48 浏览

callback - pTextServices->TxSendMessage( EM_STREAMIN, ( WPARAM ) SF_RTF, ( LPARAM ) &editStream, &lResult ) 不调用 EditStreamInCallback

调用时: pTextServices->TxSendMessage( EM_STREAMIN, ( WPARAM ) SF_RTF, ( LPARAM ) &editStream, &lResult )

没有调用 editSteam.EditStreamInCallback,但如果使用 SF_TEXT 而不是 SF_RTF,则调用 editSteam.EditStreamInCallback。

根据 MS 文档: https ://docs.microsoft.com/en-us/windows/win32/api/richedit/nc-richedit-editstreamcallback

发生错误,阻止富编辑控件将数据传入或传出自身。例如内存不足、系统功能故障或读取缓冲区中的无效字符。

在这些情况下,editStream.dwError 应该包含与零不同的值,但它是零。

这是使用的 RTF:代码中的“{\rtf1\ansi\pard test \par}”转义为:

谢谢