如何在Delphi中模拟Canvas上文本的选择/取消选择?

Dav*_*idB 0 delphi canvas delphi-7 selection

我想在Canvas上模拟Delphi 7中文本的选择/取消选择(如在TEdit中).我使用FillRect来改变背景颜色,使用TextOut来绘制文本.但我需要知道4种颜色值:

  • 未选文本;

  • 选定的文字;

  • 未选文本的背景;

  • 所选文本的背景.

当用户更改Windows主题或编辑窗口外观时,这些值会发生变化.对于Windows XP中的经典主题,值为:clBlack,clWhite,clWhite,clNavy.也许在Delphi中有cl*常量或者我必须使用Api函数来获取它们.有谁知道怎么样?谢谢.

And*_*and 5

未选择:

clWindow
clWindowText
Run Code Online (Sandbox Code Playgroud)

选择:

clHighlight
clHighlightText
Run Code Online (Sandbox Code Playgroud)