请教各位老大:如果要用下拉框选择颜色,怎么样才能做啊。谢谢!!!
cb 6自带了这样的控件,可以直接使用!
ComboBox1的style属性设置csOwnerDrawFixed
然后在ComboBox1DrawItem进行重画
具体代码例子
String name = ComboBox1->Items->Strings[Index];
TColor backColor;
TColor textColor;
if (State.Contains(odSelected)) {
backColor = (TColor)GetSysColor(COLOR_HIGHLIGHT);
textColor = (TColor)GetSysColor(COLOR_HIGHLIGHTTEXT);
}
else {
backColor = (TColor)GetSysColor(COLOR_WINDOW);
textColor = (TColor)GetSysColor(COLOR_WINDOWTEXT);
}
if (Index % 2 == 1)
ComboBox1->Canvas->Font->Style = TFontStyles() << fsBold;
else
ComboBox1->Canvas->Font->Style = TFontStyles();
ComboBox1->Canvas->Brush->Color = backColor; //clRed clGray //字体背景
ComboBox1->Canvas->FillRect(Rect);
Rect.Left = Rect.Left+ 14;
if(Index==2)
ComboBox1->Canvas->Font->Color = clRed;
DrawText(ComboBox1->Canvas->Handle,
name.c_str(), -1, (RECT*)&Rect, DT_SINGLELINE | DT_VCENTER);
return;
够了吧!wyb45@sohu.com
还可以加入小图标
升级到cb6吧,简单
ComboBox1的style属性设置csOwnerDrawFixed
是很关键的设置。
代码写到
ComboBox1DrawItem事件里去