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

如何在Delphi中模拟画布上文本的选择/取消选择?,delphi,canvas,selection,delphi-7,Delphi,Canvas,Selection,Delphi 7,我想在画布上模拟Delphi7中文本的选择/取消选择(如TEdit)。 我使用FillRect更改背景颜色,并使用TextOut绘制文本。 但我需要知道以下4种颜色值: 未选择的文本 选定的文本 未选定文本的背景 所选文本的背景 当用户更改窗口主题或编辑窗口外观时,这些值正在更改。 对于Windows XP中的经典主题,值为:clBlack、clWhite、clWhite、clNavy。 也许Delphi中有cl*常量,或者我必须使用Api函数来获取它们。 有人知道怎么。。。? 谢谢。未选中

我想在画布上模拟Delphi7中文本的选择/取消选择(如TEdit)。 我使用FillRect更改背景颜色,并使用TextOut绘制文本。 但我需要知道以下4种颜色值:

  • 未选择的文本

  • 选定的文本

  • 未选定文本的背景

  • 所选文本的背景

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

未选中:

clWindow
clWindowText
clHighlight
clHighlightText
选中:

clWindow
clWindowText
clHighlight
clHighlightText

未选中:

clWindow
clWindowText
clHighlight
clHighlightText
选中:

clWindow
clWindowText
clHighlight
clHighlightText

您最好使用主题API来绘制文本。@David Heffernan我也会尝试,谢谢。您最好使用主题API来绘制文本。@David Heffernan我也会尝试,谢谢。