我使用以下代码为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;
答案 0 :(得分:3)
EM_SETRECT
仅告诉RichEdit允许其呈现文本的矩形。要更改保留空间的边距的背景颜色,您必须将RichEdit子类化为直接处理WM_PAINT
消息,然后您可以在该空间中绘制任何内容。
答案 1 :(得分:1)
我不确定这是否可行,但您可以发送EM_SETEDITSTYLE消息来设置我过去使用过的SES_EXTENDBACKCOLOR - 这会导致背景颜色延伸到边距。有关详细信息,请参阅this MSDN page。