Richedit选中的中文变色问题
我想用Richedit做一个打字程序,英文比较变色是没问题,但是中文的话,真么弄都不行
代码如下:
void __fastcall TForm1::EdInputChange(TObject *Sender)
{
AnsiString Ansi_Read = "";
AnsiString Ansi_Write = "";
//iTotallen 是一个全局变量,用来记录此事件发生之前的RichEdit的总字节大小
Ansi_Read = LaText->Caption.SubString(iTotalLen + 1,EdInput->Text.Length() - iTotalLen);
Ansi_Write = EdInput->Text.SubString(iTotalLen + 1,EdInput->Text.Length() - iTotalLen);
EdInput->SelAttributes->Color = clBlack;
//ShowMessage(Ansi_Read);
//ShowMessage(Ansi_Write);
if (Ansi_Read != Ansi_Write)
{
//如果没有这个ShowMessage的话错的中文字不会变色,英文可以
ShowMessage( Ansi_Read );
// ShowMessage( Ansi_Write );
EdInput->SelStart = iTotalLen ;
EdInput->SelLength = EdInput->Text.Length() - iTotalLen ;
EdInput->SelAttributes->Color = clRed;
EdInput->SelStart = EdInput->Text.Length();
EdInput->SelLength = 0;
}
else
{
EdInput->SelStart = iTotalLen ;
EdInput->SelLength = EdInput->Text.Length() - iTotalLen ;
EdInput->SelAttributes->Color = clBlack;
EdInput->SelStart = EdInput->Text.Length();
EdInput->SelLength = 0;
Form1->Canvas->TextOutA(100,200, Ansi_Write);
}
iTotalLen = EdInput->Text.Length();
}