工控编程吧
标题:
70上位机VC MFC组合框下拉框颜色选择设置
[打印本页]
作者:
qq263946146
时间:
2015-12-9 21:33
标题:
70上位机VC MFC组合框下拉框颜色选择设置
(, 下载次数: 1)
上传
点击文件名下载附件
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()函数实现颜色的设置与获得
int CColorCombo::AddItem(LPCTSTR lpszText, COLORREF clrValue)
{
int nIndex = AddString(lpszText);
SetItemData(nIndex, clrValue);
return nIndex;
}
COLORREF CColorCombo::GetCurColor()
{
int nIndex = GetCurSel();
if (nIndex != -1)
{
return GetItemData(nIndex);
}
else
return -1;
}
复制代码
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(); }
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/e74deeaab1c4ad714a127d34486bbb60/0/0/w_19rt6v7dft.swf-albumId=5002969509-tvId=5002969509-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4