突出显示时的菜单背景颜色(clHightlightText 不起作用)
Menu background color when highlighted (clHightlightText doesn't work)
我需要做一些自定义绘画,当自定义控件中的项目被按下或悬停时,我想显示突出显示的项目状态。
PS。这是 Windows 2000 的非主题绘画,高对比度(或选择时)更高 OS。
if (State != rsNormal)
{
Canvas->Brush->Color = clHighlight ;
Canvas->Font->Color = clWhite ; // clHightlightText ;
}
else
{
Canvas->Brush->Color = clBtnFace;
Canvas->Font->Color = clBtnText ;
}
上面的当前代码完全可以满足我的需要但是Font->Color
clwhite
当然是我在Win2K,WinXP中看到的情况等等,但它不是系统颜色,我担心 clHighlight
可能是一种与 clWhite
.
没有足够对比度的颜色
documentation 提到:clHightlightText
,这基本上是我需要的,但我的编译器 C++ Builder 2009 不知道这个系统颜色,而且文档没有提供link因为它(不同于其他颜色)也不好看。
如何获取高亮文本的非硬编码值?
想通了...有根据的猜测
参照我尝试了以下系统颜色的其余部分的文档:
TColor clHightlightText = TColor(clSystemColor | COLOR_HIGHLIGHTTEXT);
这在 Win2K、WinXP 和 Win7 上运行良好
奇怪的是,文档和 C++ Builder 2009 都未能正确执行此操作并且仍然想知道原因是什么?缺少对旧 OS 的支持?不管怎样,从 Win2K 开始,它似乎都能正常工作。
clHighlightText
是正确的用法。它在同一个 $(BCB)\include\vcl\Graphics.hpp
头文件中定义 所有 cl...
颜色常量,包括您正在使用的其他颜色常量:
static const TColor clHighlight = -16777203;
static const TColor clHighlightText = -16777202;
static const TColor clBtnFace = -16777201;
...
static const TColor clBtnText = -16777198;
...
static const TColor clWhite = 16777215;
这些常量已经存在很长时间了,可以追溯到早期的 C++Builder 版本。您的版本 (CB2009) 肯定有它们(上面的定义实际上是从 CB2009 复制的)。
我需要做一些自定义绘画,当自定义控件中的项目被按下或悬停时,我想显示突出显示的项目状态。 PS。这是 Windows 2000 的非主题绘画,高对比度(或选择时)更高 OS。
if (State != rsNormal)
{
Canvas->Brush->Color = clHighlight ;
Canvas->Font->Color = clWhite ; // clHightlightText ;
}
else
{
Canvas->Brush->Color = clBtnFace;
Canvas->Font->Color = clBtnText ;
}
上面的当前代码完全可以满足我的需要但是Font->Color
clwhite
当然是我在Win2K,WinXP中看到的情况等等,但它不是系统颜色,我担心 clHighlight
可能是一种与 clWhite
.
documentation 提到:clHightlightText
,这基本上是我需要的,但我的编译器 C++ Builder 2009 不知道这个系统颜色,而且文档没有提供link因为它(不同于其他颜色)也不好看。
如何获取高亮文本的非硬编码值?
想通了...有根据的猜测
参照我尝试了以下系统颜色的其余部分的文档:
TColor clHightlightText = TColor(clSystemColor | COLOR_HIGHLIGHTTEXT);
这在 Win2K、WinXP 和 Win7 上运行良好 奇怪的是,文档和 C++ Builder 2009 都未能正确执行此操作并且仍然想知道原因是什么?缺少对旧 OS 的支持?不管怎样,从 Win2K 开始,它似乎都能正常工作。
clHighlightText
是正确的用法。它在同一个 $(BCB)\include\vcl\Graphics.hpp
头文件中定义 所有 cl...
颜色常量,包括您正在使用的其他颜色常量:
static const TColor clHighlight = -16777203;
static const TColor clHighlightText = -16777202;
static const TColor clBtnFace = -16777201;
...
static const TColor clBtnText = -16777198;
...
static const TColor clWhite = 16777215;
这些常量已经存在很长时间了,可以追溯到早期的 C++Builder 版本。您的版本 (CB2009) 肯定有它们(上面的定义实际上是从 CB2009 复制的)。