如何在RichEdit中更改边距的背景颜色?

时间:2015-06-19 00:19:55

标签: delphi colors margin richedit

我使用以下代码为RichEdit添加边距。如何更改背景颜色?

procedure TForm1.Button1Click(Sender: TObject);
var
   LRect: TRect;
begin
   LRect := RichEdit1.ClientRect;
   InflateRect(LRect, -25, -25); 
   RichEdit1.Perform(EM_SETRECT, 0, Integer(@LRect));
end;

2 个答案:

答案 0 :(得分:3)

EM_SETRECT仅告诉RichEdit允许其呈现文本的矩形。要更改保留空间的边距的背景颜色,您必须将RichEdit子类化为直接处理WM_PAINT消息,然后您可以在该空间中绘制任何内容。

答案 1 :(得分:1)

我不确定这是否可行,但您可以发送EM_SETEDITSTYLE消息来设置我过去使用过的SES_EXTENDBACKCOLOR - 这会导致背景颜色延伸到边距。有关详细信息,请参阅this MSDN page