- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要你的帮助!所以,我正在创建一个带有语法高亮器的 RichEdit,我是这样做的:
SendMessage(hWin, WM_SETREDRAW, false, 0);
CHARFORMAT2 format, old;
format.cbSize = sizeof(format);
old.cbSize = sizeof(format);
MainRich.GetFormat(SCF_DEFAULT, &format);
MainRich.GetFormat(SCF_DEFAULT, &old);
format.dwMask = CFM_BOLD;
format.dwEffects = CFE_BOLD;
CHARRANGE* c = MainRich.GetSelectionRange();
int length = MainRich.GetLength();
string str = string(MainRich.GetText());
#define hl "true" //Example of syntax for highlight
int last = 0;
while (str.find(hl, last)!=string::npos)
{
MainRich.Select(str.find(hl, last), str.find(hl, last)+strlen(hl));
MainRich.SetFormat(SCF_SELECTION, &format);
last = str.find(hl, last)+strlen(hl);
}
MainRich.Select(c->cpMin, c->cpMax);
MainRich.SetFormat(SCF_SELECTION, &old);
SendMessage(hWin, WM_SETREDRAW, true, 0);
UpdateWindow(hWin);
}
但是我看到在有很多高亮的大文件中它变得迟钝,你有更好的方法吗?我检查了Iczelion's Assembly但是那段代码一团糟,他似乎在文本前面画了高光但是这样选择不起作用,对吧?如果是这样,你能给我一些提示吗?谢谢!
最佳答案
我发现最快的方法是构建原始 RTF 文档,然后通过 EM_STREAMIN 将其流式传输到控件。消息。
EDITSTREAM stream;
stream.dwCookie = (DWORD_PTR)&streamData; // pointer your rtf data
stream.dwError = 0;
stream.pfnCallback = (EDITSTREAMCALLBACK)RtfStreamCallback; // callback which will push down the next chunk of rtf data when needed
LRESULT bytesAccepted = 0;
bytesAccepted = SendMessage(hWindow, EM_STREAMIN, SF_RTF, (LPARAM)&stream);
要记住的另一件事是,您使用的 RTF 控件对性能有严重影响。当我这样做时,我发现默认控件(由 Windows XP 提供)慢得可怕,但是 Microsoft Office 提供的 RICHED20.DLL 快了几个数量级。您应该试用您有权访问的版本并进行一些性能比较。
链接到 1.6 RTF Specification
关于c++ - RichEdit 语法高亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109514/
在这个 fiddle 上,函数完美地完成了工作,但我需要稍微调整连接。 该点击甚至需要是父 div 的 addClass(深色/浅色)(true 或 false)。 如果是深色,则添加 Bright
我正在使用 Windows.UI.ViewManagement.UISettings 来获取系统强调色,但该类似乎没有任何亮/暗模式的方法或属性。我找不到此功能的文档,我该如何检测? PS:我正在制作
在使用 iOS 13 在明暗模式之间切换时,我遇到了显示键盘的异常行为。 该 View 有一个 inputAccessoryView 供用户输入消息。当然后在键盘显示的情况下切换亮/暗模式时,亮/暗模
我正在开发一个支持多个主题的 iOS 应用程序。有些主题使用深色背景,有些使用浅色。一些默认图标在深色/浅色背景中不可见。我在 xcassets 中看到一个选项,可以为不同的颜色模式添加图像。我的目标
一些上下文:Sciter (纯 win32 应用程序)已经能够呈现类似 UWP 的 UI: 在深色模式下: 在灯光模式下: Windows 10.1803 在设置小程序中引入深色/浅色开关 as se
我是一名优秀的程序员,十分优秀!