如何设置TRichedit默认段落背景颜色

时间:2015-10-02 08:59:59

标签: delphi winapi delphi-7

我尝试使用以下代码设置TRichEdit控件默认段落bg颜色:

//******************************************************************************
class procedure TRichEditUtility.setBGColor( aRE_ : TTNTRichEdit; bgColor_ : cardinal; default_ : boolean = FALSE );
//******************************************************************************
var
  cf: TCharFormat2;
begin
  if ( aRE_ <> NIL ) then
  begin
    fillchar(cf, sizeof(cf), 0);
    cf.cbSize := sizeof( cf );
    cf.dwMask := CFM_BACKCOLOR;
    cf.crBackColor := bgColor_;
    if ( default_ ) then
      aRE_.Perform( EM_SETCHARFORMAT, SPF_SETDEFAULT, lparam(@cf) )
    else
      aRE_.Perform( EM_SETCHARFORMAT, SCF_SELECTION, lparam(@cf) );
  end else
    raise EInvalidInputParameter.create_string( 'TRichEditUtility', 'setBGColor', 'aRE_', CONST_chars_NIL );
end;

但是SPF_SETDEFAULT常数的值是未知的!

有人可以告诉我它的价值吗? (或定义其值的文件名)

1 个答案:

答案 0 :(得分:1)

以下是解决此问题的方法,以及此类问题。

  • SPF_SETDEFAULT执行网络搜索。
  • 这会将您带到EM_SETCHARFORMAT的文档。
  • 该文档将Richedit.h列为必需的标题。
  • 在您的Windows SDK副本中找到Richedit.h并搜索SPF_SETDEFAULT
  • 该搜索会产生这样的结果:#define SPF_SETDEFAULT 0x0004
  • 所以在Delphi中你可以像这样定义常量:const SPF_SETDEFAULT = $0004