马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无符号整形 于 2016-12-4 18:11 编辑
你有木有觉得ComboBox太单调了呢?
是不是该来点什么?是不是少了个图标?
没错,你想到的MS也想到了,于是他们就创造了ComboBoxEx(估计应该是Combo Box Extended )。
它可以给组合框的每一个项添加一个图标!
心动了吧!
基础知识:
要记住ComboBox的每一项都是由一个COMBOBOXEXITEM来描述的。
好的,让我们来看看,如何给ComboBoxEx添加一个有图标的项。
下面是一个例子,它示范了如何添加一个新的项目。
注意:使用下列代码前面需要先初始化一个CImageList结构,然后在这个结构里面使用Add成员函数添加位图到里面,最后调用ComboBoxEx结构中的SetImageList,参数传CImageList的地址(看不懂的话,后面有一个实例,别担心。)COMBOBOXEXITEM cbi;
int nItem;
cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
cbi.iItem = i;
cbi.pszText = L"这里是新项目的标签";
cbi.cchTextMax = wcslen(L"这里是新项目的标签");
cbi.iImage = 0;
cbi.iSelectedImage = 1;
cbi.iOverlay = 2;
cbi.iIndent = (i & 0x03); //Set indentation according
//to item position
nItem = m_comboEx.InsertItem(&cbi);
ASSERT(nItem == i);
COMBOBOXEXITEM结构里面的(下列成员只要Flags不设置他们有效,就可以为0)
int iImage 表示
图像列表中基于零的图像索引,用于表示"未选定"的状态
int iSelectedImage表示
在图像列表中基于零的图像索引,用于表示"选定"的状态
int iOverlay表示
图像列表中图像的索引,用于覆盖当前的图像
实践时间
貌似这个控件有个bug,图标就是显示不出来。
MFCApplication43.rar
(1.58 MB, 下载次数: 20)
|