带图标的组合框

来源:互联网 发布:有趣的网站 知乎 编辑:程序博客网 时间:2024/05/29 06:47

(1)新建一个基于对话框的应用程序

(2)在对话框上添加添加一个扩展组合框控件,添加CcomboBoxEx类成员变量m_Combo

(3)在头文件中声明一个图像列表对象CImageList  m_ImageList;

(4)在资源视图中导入7个icon类型的图

(5)主程序代码如下:

BOOL CMy2_073Dlg::OnInitDialog()
{
 CDialog::OnInitDialog();

……
 // TODO: Add extra initialization here

 CString str[]={"钱夫人","小丹尼","卡卡罗特","琪琪","特兰克斯","贝吉塔","天津饭"};
 m_ImageList.Create(16,16,ILC_COLOR24|ILC_MASK,1,0);  //创建列表视图窗口
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));  //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));   //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));   //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));   //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));   //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));   //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));   //向图像列表中添加图标
 m_Combo.SetImageList(&m_ImageList);
 for(int i=0;i<7;i++)
 {
  COMBOBOXEXITEM cbi;
  cbi.mask = CBEIF_IMAGE|CBEIF_INDENT|CBEIF_OVERLAY|
     CBEIF_SELECTEDIMAGE|CBEIF_TEXT;
  cbi.iItem    = i;
  cbi.pszText   = str[i].GetBuffer(0); //设置列表项文本
  cbi.cchTextMax  = str[i].GetLength(); //设置文本最大长度
  cbi.iImage    = i;
  cbi.iSelectedImage = i;
  cbi.iOverlay   = 0;
  cbi.iIndent   = (0 & 0x03);
  m_Combo.InsertItem(&cbi);     //插入数据
 }

 return TRUE;  // return TRUE  unless you set the focus to a control
}

原创粉丝点击