1

我开发了一个从 Richedit 组件派生的自定义组件。

我使用了 Peter 下面创建的 PBExEdit 中的示例来擦除和重新绘制背景。这成功地在禁用时为richedit 背景设置了不同的颜色。但是,richedit 中的文本不会重新绘制。我试图使用以下几行没有成功。该组件甚至不会在运行时呈现。

procedure WMPaint...
var Format: TCharFormat2;
begin

//call to erase and paint bg using WMEraseBkGnd...
//Here are the lines that are not working.
  try
    FillChar(Format, SizeOf(Format), 0);
    Format.cbSize := SizeOf(Format);
    Format.dwMask := CFM_COLOR;
    Format.crTextColor := ColorToRGB(Font.Color);
    Perform(EM_SETCHARFORMAT, SCF_ALL, LongInt(@Format));
  end;

end;

我还尝试了 EM_SETBKGNDCOLOR,但没有奏效。

我认为 EM_SETCHARFORMAT 需要更多...但我不知所措。

任何援助将不胜感激。

谢谢

巴里

4

0 回答 0