MFC_CListCtrl 列表控件(常用)
2017-09-25 21:28
579 查看
//感谢猎豹网校的视频
MFC class : CListCtrl
四种视图:大图标/小图标/列表/详细信息
CImageList : 图像列表控件,用于图像保存,多个图像亦可,用作大小图标显示。
最常见的列表控件,就是 平时见到的Windows文件资源管理器重看到的文件列表。
1.开始工作吧
2.添加“List Control””Button”“Combo Box” 制作界面。
IDC_LIST IDC_BTN_ADD IDC_BTN_DEL IDC_CMB_VIEW
组合框用于选择视图样式
3.初始化对话框程序,初始化列表空间
在Dlg.h添加图像空间类成员,在文件夹中添加图像资源(将32*32,16*16复制到res文件夹中)
编辑“添加”按钮的处理函数
编辑“删除”按钮的处理函数
设置组合框
属性表——data设置为“大图标;小图标;列表;详细信息”(;分割,英文输入法)
——sort 设置为“False”
——type 设置为“Drop List”下拉列表
插曲:昨天可以,但是同样程序今天报错。
“error RC2170:bitmap file xxx.png is not in 3.00 format”
原因是MS 对PNG格式支持不太好,建议使用 bmp格式。
解决方法还有:
修改如下代码中的BITMAP 为 PNG
回到组合框,选中组合框,选择“CBN_SELCHANGE”消息,重写消息处理函数
MFC class : CListCtrl
四种视图:大图标/小图标/列表/详细信息
CImageList : 图像列表控件,用于图像保存,多个图像亦可,用作大小图标显示。
最常见的列表控件,就是 平时见到的Windows文件资源管理器重看到的文件列表。
1.开始工作吧
2.添加“List Control””Button”“Combo Box” 制作界面。
IDC_LIST IDC_BTN_ADD IDC_BTN_DEL IDC_CMB_VIEW
组合框用于选择视图样式
3.初始化对话框程序,初始化列表空间
// TODO: 在此添加额外的初始化代码 //列表控件实质是个表格 //现在给其增加表头,设置样式,添加行 m_list.ModifyStyle(LVS_TYPEMASK,LVS_REPORT);//共有4中样式,REPORT为详细信息,第一个参数是固定的 m_list.InsertColumn(0,_T("第一列"),LVCFMT_LEFT,120);//添加表头,第一列/表头名字/左对齐/宽度 m_list.InsertColumn(1,_T("第二列"),LVCFMT_LEFT,120);//添加表头,第二列 //windows资源管理器前都含有图标//在此之前应在Dlg.h添加图片列表控件的公共 类成员 m_ilLarge.Create(IDB_LARGEDOC,32,1,RGB(255,0,0));//最后一个参数设置颜色,第一个参数表示图像列表控件变量名,第二个参数为32*32,第三个参数是图片ID m_ilSmall.Create(IDB_SMALLDOC,16,1,RGB(255,0,0));//mm_ilLarge为图片列表控件变量 m_list.SetImageList(&m_ilLarge,LVSIL_NORMAL);//NORMAL大图标 m_list.SetImageList(&m_ilSmall,LVSIL_SMALL); //SMALL小图标 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
在Dlg.h添加图像空间类成员,在文件夹中添加图像资源(将32*32,16*16复制到res文件夹中)
// 实现 protected: HICON m_hIcon; //列表控件带图标,大小图标(图像列表) CImageList m_ilLarge;//既然叫图像列表空间,里面可以放置很多图片 CImageList m_ilSmall;//小图标;图标大小在OnInitDlg()中定义 // 生成的消息映射函数
编辑“添加”按钮的处理函数
void Clb012Dlg::OnBnClickedBtnAdd() { // TODO: 在此添加控件通知处理程序代码 int nCount = m_list.GetItemCount();//获得列表控件的目前总行数 CString strText; strText.Format(_T("第%d行,第1列"),nCount+1); m_list.InsertItem(nCount,strText,0);//0代表第一个图标,之前也只初始化了一个图标,序号为0 strText.Format(_T("第%d行,第2列"),nCount+1); m_list.SetItemText(nCount,1,strText);//1代表第二列,这个函数不再是Insert,设置第二列信息。第1列和第2列是成对出现的。前面已经插入了一条ITEM,第2个命令是补充。 }
编辑“删除”按钮的处理函数
void Clb012Dlg::OnBnClickedBtnDel() { // TODO: 在此添加控件通知处理程序代码 int nCount = m_list.GetItemCount();//先计算列表中总共多少行 for(int i = nCount; i>= 0; i--) //删除操作,从后往前工作 { if(m_list.GetItemState(i,LVIS_SELECTED) == LVIS_SELECTED)//状态判断,是否被选中,这样任何一条被选中都可以进行相应的操作 m_list.DeleteItem(i); } }
设置组合框
属性表——data设置为“大图标;小图标;列表;详细信息”(;分割,英文输入法)
——sort 设置为“False”
——type 设置为“Drop List”下拉列表
插曲:昨天可以,但是同样程序今天报错。
“error RC2170:bitmap file xxx.png is not in 3.00 format”
原因是MS 对PNG格式支持不太好,建议使用 bmp格式。
解决方法还有:
修改如下代码中的BITMAP 为 PNG
//xxx.rc ///////////////////////////////////////////////////////////////////////////// // // PNG // IDB_LARGEDOC PNG "res\\big.png" IDB_SMALLDOC PNG "res\\small.png" /////////////////////////////////////////////////////////////////////////////
回到组合框,选中组合框,选择“CBN_SELCHANGE”消息,重写消息处理函数
void Clb012Dlg::OnCbnSelchangeCmbView() { // TODO: 在此添加控件通知处理程序代码 DWORD dwStyle; //用于记录图标显示样式 CComboBox *pView; pView = (CComboBox*)GetDlgItem(IDC_CMB_VIEW);//得到组合框对象。 switch(pView->GetCurSel())//获得当前组合框选中的哪条 !!!其实是序号。 { case 0: //0代表第一个,组合框中序号 dwStyle = LVS_ICON; //大图标 break; case 1: dwStyle = LVS_SMALLICON;//小图标 break; case 2: dwStyle = LVS_LIST; //列表 case 3: dwStyle = LVS_REPORT; //详细信息 break; default: break; } m_list.ModifyStyle(LVS_TYPEMASK,dwStyle);//改变样式;第一个参数是固定的,第二个是我们选择的。 }
相关文章推荐
- MFC中的列表控件CListCtrl
- 【VS开发】MFC CListCtrl列表控件的消息响应
- MFC常用控件CListCtrl、CSliderCtrl、CToolTipCtrl、CTreeCtrl的自绘
- VS2013/MFC编程入门之二十八(常用控件:列表视图控件List Control 下)
- 高级列表控件ListCtrl关联的MFC中的类:CListCtrl
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- MFC常用控件CListCtrl 、CSliderCtrl、CToolTipCtrl、CTreeCtrl的自绘
- VC MFC列表视图(CListCtrl)控件
- Visual studio C++ MFC之列表控件CListCtrl Control
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- (转载)VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- MFC 列表控件CListCtrl加载类似QQ界面的头像与文字
- MFC 常用控件使用 —— CListCtrl
- MFC中的列表控件CListCtrl
- (转载)VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- MFC 列表控件CListCtrl详解
- MFC常用控件CListCtrl 、CSliderCtrl、CToolTipCtrl、CTreeCtrl的自绘
- MFC 列表控件CListCtrl详解
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)