列表控件ListCtrl的使用
{
//
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(240,255,240));
m_list.SetTextColor(RGB(0,0,255));
//---------------------------------------------
//插入列字段
m_list.InsertColumn(0,"学号",LVCFMT_LEFT,100);
m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,100);
//插入行项目
m_list.InsertItem(0,"20010540519");
m_list.InsertItem(1,"20010540520");
m_list.InsertItem(2,"20010540521");
//插入行内容
m_list.SetItemText(0,1,"宫奇");
m_list.SetItemText(1,1,"杨建敏");
m_list.SetItemText(2,1,"张威");
return TRUE;
}
2.新建对话框IDD_EDIT, 用来做修改、删除、添加记录等,添加2个编辑框,分别连接变量m_StudentID和m_StudentName,为它创建新的类CEditDlg,基类是CDialog;
3.为了使用上面的CEditDlg类 ,在TestDlg.cpp里的 #endif 之后加入#include "EditDlg.h";然后在主对话框上加入4个按钮修改(IDC_CHANGE)、删除(IDC_DELETE)、添加(IDC_ADD)、保存(IDC_SAVE),然后添加他们的响应函数如下:
{ //得到选择项的索引值
POSITION pos=m_list.GetFirstSelectedItemPosition();
m_nIndex=m_list.GetNextSelectedItem(pos);
if(m_nIndex==-1)
{
MessageBox("请选择一项再修改!","提示",MB_ICONINFORMATION);
return;
}
CEditDlg edlg;
edlg.m_StudentID=m_list.GetItemText(m_nIndex,0);
edlg.m_StudentName=m_list.GetItemText(m_nIndex,1);
if(edlg.DoModal()==IDOK)
{
m_list.SetItemText(m_nIndex,0,edlg.m_StudentID);
m_list.SetItemText(m_nIndex,1,edlg.m_StudentName);
}
}
void CTestDlg::OnDelete()
{
POSITION pos=m_list.GetFirstSelectedItemPosition();
m_nIndex=m_list.GetNextSelectedItem(pos);
if(m_nIndex==-1)
{
MessageBox("请选择一项!","提示",MB_ICONINFORMATION);
return;
}
m_list.DeleteItem(m_nIndex);
//下面这2句的作用是刷新当前所指记录位置,以便连续删除
// UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
// m_list.SetItemState(m_nIndex-1, flag, flag);
}
void CTestDlg::OnAdd()
{
CEditDlg edlg;
if(edlg.DoModal()==IDOK)
{
if(edlg.m_StudentID=="")
return;
m_nIndex=m_list.GetItemCount();
m_list.InsertItem(m_nIndex,edlg.m_StudentID);
m_list.SetItemText(m_nIndex,1,edlg.m_StudentName);
}
}
void CTestDlg::OnSave()
{
CStdioFile sf;
if(sf.Open("资料.txt",CFile::modeCreate | CFile::modeWrite))
{
CString strOut;
strOut="学号\t\t姓名\r\n";
sf.WriteString(strOut);
for(int i=0;i<m_list.GetItemCount();i++)
{
strOut=m_list.GetItemText(i,0) + "\t"+m_list.GetItemText(i,1)+"\r\n";
sf.WriteString(strOut);
}
sf.Close();
MessageBox("保存成功!","提示",MB_ICONINFORMATION);
}
else
MessageBox("保存失败!","提示",MB_ICONINFORMATION);
}
好了,现在就编译运行吧~你看到的结果应该是(现在上传不了图,暂时,以后会贴上来的)
转载于:https://www.cnblogs.com/yjm0105/archive/2005/05/17/157327.html
列表控件ListCtrl的使用相关推荐
- MFC之列表控件ListCtrl
MFC列表控件ListCtrl如图: 列表控件ListCtrl样式属性(风格)有: Icon大图标,SmallIcon小图标.List列表.Report报告 ,但今天只谈Report报告样式: 一:基 ...
- wxpython列表控件listctrl设置某行颜色_wxPython ListCtrl:写入彩色纹理
在尝试将字符串写入listcrl时,我无法完全理解逻辑.这是正确的方法吗?在self.rightPanel = wx.ListCtrl(spliter, -1, style=wx.LC_REPORT) ...
- 设置ListCtrl列表控件其中某一行的字体和背景颜色
设置ListCtrl列表控件其中某一行的字体和背景颜色,可以最终达到如下效果: 操作步骤如下所示: 1.先添加一个自定义消息 ON_NOTIFY ( NM_CUSTOMDRAW,IDC_V_H264_ ...
- 虚拟列表控件---加载大数据行
平常所用到的列ListView/ListCtrl控件,都是只有行至几百行数据,直至今日,在项目中遇到了上10W量级数据条,终于感觉到普通加载的艰辛,遂到网上乱找一通,发现大同小异,转载了这篇比较详细的 ...
- MFC 列表控件CListCtrl加载类似QQ界面的头像与文字
本文主要讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn.InsertItem.SetItemTe ...
- Android列表控件选项中添加进度框ProgressBar实现
今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...
- 免费超高速卡片式病人基本信息列表控件
C#写的免费超高速卡片式病人基本信息列表控件,以卡片的方式列出病人基本信息.性能卓越,瞬间填充上千个项目. 下载地址http://files.cnblogs.com/xdesigner/Patient ...
- 确定多重选择列表控件 (List Control) 中的选定内容
确定多重选择列表控件 (List Control) 中的选定内容 依次通过控件的 Items 集合,分别测试每一项的 Selected 属性. 下面的示例显示如何测试多重选择 ListBox 控件(名 ...
- [翻译]Chameleon介绍(3) : 列表控件
[原文]http://getben.com/archive/2007/01/11/introduction-to-chameleon-list-base-controls.aspx 这篇文章属于我的文 ...
最新文章
- DataGirdView 编辑项时的验证
- cors spring_Spring,REST,Ajax和CORS
- mac mysql5.7.9 dmg_Mac 安装 mysql5.7
- ASP.NET Core MVC 之区域(Area)
- NSHashTable and NSMapTable
- java复制arraylist_Java - 复制ArrayList
- 清华大学发布《人工智能芯片技术白皮书(2018)》
- 【云驻共创】华为云文字识别服务的体验之旅
- 基于Simulink的汽车电子驻车系统仿真分析
- PIN/PAD Design in SoC - 2 (待续)
- 历时90天,2017 CCF大数据与计算智能大赛(BDCI)决赛落幕
- VSCode 即时英文翻译插件 【翻译(英汉词典)】
- 创建mysql视图索引_mysql 创建索引和视图
- DSM到DTM的转换——基于PCI Geomatica
- recovery 工作流程
- python炒股难度_诺贝尔奖得主教你如何分配炒股仓位 | python量化系列
- 数学建模之规划1——线性规划
- Mongodb访问控制
- 五十一个经典小故事2
- Android 定位的实现
热门文章
- P2774 方格取数问题
- 韩顺平 servlet 笔记 第5讲
- CSS样式中” 大于号”
- 使用C#实现Morse码的输出
- 神经网络的收敛标准有最优值吗?
- [cpp]c++中的 _t 类的数据类型
- 机器人焊枪动作与编程实验_机器人编程实验报告.pdf
- linux7开启ipmi,通过IPMI安装CentOS7教程
- python django并发访问挂掉,解决django高并发时数据库连接量过大的问题(实现连接池的方法)...
- 4.2 数据集划分-机器学习笔记-斯坦福吴恩达教授