QQ登录

只需一步,快速开始

70上位机VC MFC组合框下拉框颜色选择设置

[ 复制链接 ]

70上位机VC MFC组合框下拉框颜色选择设置

70上位机VC MFC组合框下拉框颜色选择设置

70上位机VC MFC组合框下拉框颜色选择设置


功能展示

有时我们开发上位机程序时,要实现用组合框实现颜色的选择与设置,但组合框默认只能显示文本信息,我们就得自大编写程序实现这一功能,当前例程就实现了用组合框选择与设置颜色功能,组合框选项具有颜色与文字展示,选择相应项后,右侧区域会被填补相应的颜色效果如图
要点提示
例程是通过自绘函数DrawItem()虚函数来实现颜色设置功能,在此函数中根据项目的当前状态,绘制相应的颜色和文本。获得当前项的颜色值,可以使用组合框的SetItemData函数事先设置颜色值,后期便可以想要的时候调用 GetItemData()函数获得;SetItemData(int nIndex, COLORREF clrValue);

COLORREF co =GetItemData(int nIndex);
实现功能
1.新建基于对话框的应用程序

2.从CComboBox派生一个自己的类class CColorCombo : public CComboBox,添加AddItem()函数GetCurColor()函数实现颜色的设置与获得
  1. int CColorCombo::AddItem(LPCTSTR lpszText, COLORREF clrValue)
  2. {
  3.         int nIndex = AddString(lpszText);
  4.         SetItemData(nIndex, clrValue);
  5.         return nIndex;
  6. }

  7. COLORREF CColorCombo::GetCurColor()
  8. {
  9.         int nIndex = GetCurSel();
  10.         if (nIndex != -1)
  11.         {
  12.                 return GetItemData(nIndex);
  13.         }
  14.         else
  15.                 return -1;
  16. }
复制代码

3.添加虚函数DrawItem()实现组合框子项颜色的绘制
4.自定义组合框的使用:要主对话框中拖拽组合框控件和图片控件,组合框控件设置自绘属性,关联变量CColorCombo m_Combo;;图片控件关联变量CStatic  m_Show;
5.给组合框添加些子项用于查看效果 m_Combo.AddItem("白色", RGB(255, 255, 255));
m_Combo.SetCurSel(0);
6.在对话框OnPaint()中对图片控件进行绘制//绘制预览颜色
  COLORREF Color =m_Combo.GetCurColor();
  if (Color != -1)
  {
  CRect clientRC;
  m_Show.GetClientRect(clientRC);
  CDC* pDC =m_Show.GetDC();
  pDC->FillRect(clientRC,&CBrush(Color));
  m_Show.ReleaseDC(pDC);
  }
7.在组合框选择不同子项时,实现图片控件的重绘即可
void CGkbc8Dlg::OnSelchangeCombo1()  { Invalidate(); }


我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:70.上位机VC MFC组合框下拉框颜色选择设置.rar 
文件大小:135.91 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索