我正在使用基于MFC的代码编辑器。我遇到的问题是,当我需要为关键字添加颜色时,bassicaly没有任何反应。 SCE_C_WORD应该进行设置(我也找到了SCE_C_WORD2,但是什么也没发生)。
<faultstring>Authentication failure</faultstring>
这是我设置语言编辑器的方法(从ini文件中读取颜色)。我已经检查过,颜色已写入ini文件中,所有其他颜色(注释,运算符等)都可以工作。
编辑:制表符宽度,词法分析器等的代码...
void ScintillaCtrl::SetUpEditor()
{
SendEditor(SCI_SETKEYWORDS, NULL, reinterpret_cast<LPARAM>(ini.GetKeywords()));
SetAStyle(SCE_C_COMMENT, ini.GetColor(_T("comment")));
SetAStyle(SCE_C_COMMENTLINE, ini.GetColor(_T("comment")));
SetAStyle(SCE_C_COMMENTDOC, ini.GetColor(_T("comment")));
SetAStyle(SCE_C_NUMBER, ini.GetColor(_T("number")));
SetAStyle(SCE_C_STRING, ini.GetColor(_T("string")));
SetAStyle(SCE_C_CHARACTER, ini.GetColor(_T("string")));
SetAStyle(SCE_C_UUID, ini.GetColor(_T("uuid")));
SetAStyle(SCE_C_OPERATOR, ini.GetColor(_T("operators")));
SetAStyle(SCE_C_PREPROCESSOR, ini.GetColor(_T("preprocessor")));
SetAStyle(SCE_C_WORD, ini.GetColor(_T("keywords")));
//SetAStyle(SCE_C_WORD2, ini.GetColor(_T("keywords")));
}
答案 0 :(得分:0)
设法解决。问题是我正在将宽字符(unicode)中的关键字发送给Scintilla,但是它只接受char中的关键字,因此当我将其更改为char时,它可以工作。