MFC列表控件CListCtr使用方法
2016-10-14 23:22
309 查看
最近使用列表控制,显示图标和图片。范了一个错误,导致了图片一直没有显示出来。最后查明的原因是CImageList声明为局部变量,函数执行完成后,局部变量在内存中被释放,无法显示图标。
正确的CListCtr创建手顺如下:
一、在工具栏中托出更表控件,放在对话框中。
二、左键单击列表控制,选择追加变量,在向导中写入名称后,在头文件件自动生成成员变量名称。
//也可以通过getITEM取出CWND指针来操作列表控件。
三、 设置扩展风格以及一些初始化参数。
m_cList.ModifyStyle(0, LVS_REPORT);
m_cList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
//显示图标时,一定要设置LVS_EX_SUBITEMIMAGES
四、 生成表头。
m_cList.InsertColumn( 0, _T("列标题0"), LVCFMT_LEFT, 120 );
m_cList.InsertColumn( 1, _T("列标题1"), LVCFMT_LEFT, 100 );
五、 追加成全局的图片类。局部变量不可。
CImageList m_ImageList1;//局部不可
m_ImageList1.Create( 80,80,ILC_MASK|ILC_COLOR32, 5, 5 );
/// 0号图片
m_ImageList1.Add( AfxGetApp()->LoadIcon(IDR_MAINFRAME) );
/// 1号图片
m_ImageList1.Add( AfxGetApp()->LoadIcon(XXXXXXXXXXXX) );
//图片列表类对象与列表控件绑定
m_cList.SetImageList( &m_ImageList1, LVSIL_SMALL );
六、动态生成和追加。
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行
Itemattr.mask = LVIF_IMAGE ;
///// 指定上面关联好的0号图片
Itemattr.iImage =0; //显示不同的图标时,可以把一个int 变量赋给这个属性值
//创建指定行 Itemattr.iItem=i;
m_cList.InsertItem (&Itemattr);
m_cList.SetItemText( 0, 1, _T("0 行 1 列") );
m_cList.SetItemText( 1, 1, _T("1行 1 列") );
其它的常用方法,可以参见MSDN即可。
正确的CListCtr创建手顺如下:
一、在工具栏中托出更表控件,放在对话框中。
二、左键单击列表控制,选择追加变量,在向导中写入名称后,在头文件件自动生成成员变量名称。
//也可以通过getITEM取出CWND指针来操作列表控件。
三、 设置扩展风格以及一些初始化参数。
m_cList.ModifyStyle(0, LVS_REPORT);
m_cList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
//显示图标时,一定要设置LVS_EX_SUBITEMIMAGES
四、 生成表头。
m_cList.InsertColumn( 0, _T("列标题0"), LVCFMT_LEFT, 120 );
m_cList.InsertColumn( 1, _T("列标题1"), LVCFMT_LEFT, 100 );
五、 追加成全局的图片类。局部变量不可。
CImageList m_ImageList1;//局部不可
m_ImageList1.Create( 80,80,ILC_MASK|ILC_COLOR32, 5, 5 );
/// 0号图片
m_ImageList1.Add( AfxGetApp()->LoadIcon(IDR_MAINFRAME) );
/// 1号图片
m_ImageList1.Add( AfxGetApp()->LoadIcon(XXXXXXXXXXXX) );
//图片列表类对象与列表控件绑定
m_cList.SetImageList( &m_ImageList1, LVSIL_SMALL );
六、动态生成和追加。
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行
Itemattr.mask = LVIF_IMAGE ;
///// 指定上面关联好的0号图片
Itemattr.iImage =0; //显示不同的图标时,可以把一个int 变量赋给这个属性值
//创建指定行 Itemattr.iItem=i;
m_cList.InsertItem (&Itemattr);
m_cList.SetItemText( 0, 1, _T("0 行 1 列") );
m_cList.SetItemText( 1, 1, _T("1行 1 列") );
其它的常用方法,可以参见MSDN即可。
相关文章推荐
- MFC 虚拟列表控件的使用方法
- mfc combo box 控件使用方法总结
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- 回调函数中使用MFC类的成员或对话框控件的简单方法。
- MFC控件:listctrl使用方法总结
- CListCtrl 列表控件的使用方法 详解 .
- 列表视控件的使用方法
- VC++ 列表控件(CList) 使用方法 (2)
- VC/MFC中 CListCtrl控件的使用方法
- MFC之CStatic控件的使用方法
- 控件之Radio Button:MFC中Radio Button使用方法
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- mfc combo box 控件使用方法杂谈
- mfc combo box 控件使用方法总结
- MFC ScrollBar控件的使用方法
- CListCtrl 列表控件的使用方法 详解
- MFC单文档使用ADO列表控件连接数据库
- MFC ComboBox 控件使用方法
- MFC获取系统的进程及列表控件使用
- VC++/MFC常用控件 基本使用方法