怎么在richedit和memo中给有字符的行加上背景色
如何在richedit和memo中给有字符的行加上背景色?
我希望在richedit或memo中,给有字符的行加上整行背景色,
请问该怎么做?
我的目的是可以通过这种方式明白展示给使用者,这些行有空格或换行等空白字符。
------解决方案--------------------
我希望在richedit或memo中,给有字符的行加上整行背景色,
请问该怎么做?
我的目的是可以通过这种方式明白展示给使用者,这些行有空格或换行等空白字符。
------解决方案--------------------
- Delphi(Pascal) code
选择一些文字 uses richedit; var Fmt :TCharFormat2; begin Fmt.cbSize := SizeOf(Fmt); Fmt.dwMask := CFM_COLOR or CFM_BACKCOLOR; Fmt.crTextColor := clRed; Fmt.crBackColor := clYellow; RichEdit1.Perform(EM_SETCHARFORMAT,SCF_SELECTION,integer(@Fmt)); end;
------解决方案--------------------
- Delphi(Pascal) code
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls,richedit;//注意要加上RichEdit的引用 type TForm1 = class(TForm) RichEdit1: TRichEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Fmt :TCharFormat2; begin Fmt.cbSize := SizeOf(Fmt);//这里放传递的结构大小,系统通过这个知道传递的是CharFormat还是CharFormat2 Fmt.dwMask := CFM_COLOR or CFM_BACKCOLOR;//告诉系统只有字体颜色和背景颜色两个字段的值有效 Fmt.crTextColor := clRed;//设置字体颜色 Fmt.crBackColor := clYellow;//设置字体背景色 RichEdit1.Perform(EM_SETCHARFORMAT,SCF_SELECTION,integer(@Fmt));//发EM_SETCHARFORMAT消息给RichEdit //其中SCF_SELECTION表示该设置只对选择的文字有效,具体用法参考win32 SDK HELP RichEdit1.Lines.Add( '我靠啊 ');// 插入一行新文字 end;