TRichedit默认段落背景色设置方法
How to set the TRichedit default paragraph background color
我尝试使用此代码设置 TRichEdit
控件默认段落背景颜色:
//******************************************************************************
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
常量的值是未知的!
有人能告诉我它的价值吗? (或定义其值的文件名)
以下是解决此问题以及任何此类性质的问题的方法。
- 对
SPF_SETDEFAULT
进行网络搜索。
- 这会将您带到
EM_SETCHARFORMAT
的文档。
- 该文档将
Richedit.h
列为必需的 header。
- 在您的 Windows SDK 副本中找到
Richedit.h
并搜索 SPF_SETDEFAULT
.
- 搜索结果如下:
#define SPF_SETDEFAULT 0x0004
。
- 因此在 Delphi 中,您可以这样定义常量:
const SPF_SETDEFAULT = [=16=]04
.
我尝试使用此代码设置 TRichEdit
控件默认段落背景颜色:
//******************************************************************************
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
常量的值是未知的!
有人能告诉我它的价值吗? (或定义其值的文件名)
以下是解决此问题以及任何此类性质的问题的方法。
- 对
SPF_SETDEFAULT
进行网络搜索。 - 这会将您带到
EM_SETCHARFORMAT
的文档。 - 该文档将
Richedit.h
列为必需的 header。 - 在您的 Windows SDK 副本中找到
Richedit.h
并搜索SPF_SETDEFAULT
. - 搜索结果如下:
#define SPF_SETDEFAULT 0x0004
。 - 因此在 Delphi 中,您可以这样定义常量:
const SPF_SETDEFAULT = [=16=]04
.