listCtrl是MFC里面的一个控件,通常在插入数据的时候用InsertItem和SetItemtext这两个ClistCtrl的成员函数。
脑补内容如下:
———————————源于CSDN的blog——————————————
InsertItem在MSDN中的函数原型如下
intInsertItem(constLVITEM*pItem);
int InsertItem( intnItem,
LPCTSTRlpszItem);
int InsertItem( intnItem,
LPCTSTRlpszItem, intnImage);
int InsertItem( UINTnMask,
intnItem, LPCTSTRlpszItem,
UINTnState, UINTnStateMask,
intnImage, LPARAMlParam);
一般我们用的比较多的时第2种和第三种,其中第三种时建立一个带有头标的项
要调用第三个,可以先声明一个CImageList对象
m_ImageList.Create(16,16,true,2,2);
m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME));
m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
这样,控件中的每一行的开头就有一个应用程序图标
现在转入正题,先介绍一下INSERTITEM个个参数的意义
nItem: 控件中行的索引
lpszItem:
控件头的名字
.........................................................................................................................................................................................................
SettItemtext函数的原型
BOOLSetItemText(intnItem,intnSubItem,LPTSTRlpszText);
******************注意这个函数中的参数nItem就是INSERTITEM中的NITEM,
也就是说InsertItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就又SETITEMTEXT来实现
举例如下:
CListCtrl m_listctrl;
m_listctrl = newClistCtrl();
m_listctrl.Creae(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS
,bigRect,this,IDC_LIST1
);
m_listctrl.InsertItem(0,"01");
m_SetItemtext(0,1,"1");
m_SetItemtext(0,2,"2");
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
至于要添多少多少个数据,就由你的控件由多少列了
———————————————脑补结束—————————————
正题:
我的目的是为了在C++中将Excel的数据导入到listCtrl控件中。
range为CRange类型的一个实例。按理说这并不是个非常难理解的东西,但是我遇到了一个可能会C++中比较常见(但我确实之前没有遇到过的问题)
这个是我在无数疯狂修改后的程序:
正常结果:(原谅我用excel表示效果,有些东西不能乱发)
但是。。。你们知道之前经历了什么么?
按理说,这个地方只用一个int类型的变量传进去就可以了。窃以为用for循环的循环变量来控制这个SetItemText就可以了。
修改部分的代码如下:
错误的结果是:
这样的结果很明显只实现了InsertItem(只插入了每行第一列的数据),但是SetItemText就置若罔闻。我经过调试以后这个循环变量和GetItemCount得到的行号,实际上是一样的,都是Int的正常值。我想即使行号出错误,也会乱七八糟的插入一些值,起码不为空。
虽然不会报错,但是SetItemText不会工作。
我为什么不早用获取行号来解决问题?因为看的例程都是随便通过一个int类型的变量传入到SetItemText里面,但是我用就不行。
而且,红框里面的FUCK!!已经严重表明了我现在的心情,这块我确实想了很久。
这是为什么?!
相关推荐
VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC代码 ListCtrl (实用代码源)VC...
ListCtrl控件和下拉框,编辑框等控件组合使用ListCtrl控件和下拉框,编辑框等控件组合使用ListCtrl控件和下拉框,编辑框等控件组合使用ListCtrl控件和下拉框,编辑框等控件组合使用ListCtrl控件和下拉框,编辑框等...
ListCtrl 数据修改 添加 删除 动态 自绘ComboBox控件
一个自制的ListCtrl的MFC扩展库.编译MFCClassDll工程后,将MyListCtrl.h和MyListCtrl.lib拷贝到目标工程文件夹,在工程中包含MyListCtrl.h头文件,并将CListCtrl替换为CMyListCtrl.调用SetHeight()可以设置ListCtrl的...
listctrl自绘,item高度、颜色、等等,并具备Edit功能
MFC在ListCtrl中加入Button,一个不错的功能。
一个vc ListCtrl控件中插入进度条类CProcessList
先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二...
实现ListCtrl控件滚动条滚动到底后动态添加 1、重载WM_VSCROLL、WM_SETCURSOR、WM_MOUSEWHEEL 2、添加采用多线程,界面不卡顿 3、添加时光标变为等待状态,添加完成后还原
vc listctrl 例子vc listctrl 例子vc listctrl 例子
分页的listctrl分页的listctrl分页的listctrl分页的listctrl分页的listctrl
SuperGrid-MFC_ListCtrl控件扩展,让ListCtrl控件具有树状列表,让ListCtrl控件的每一行都是一个树结构。
ListCtrl.rar,一个listCtrl实现源代码,讲述了ListCtrl操作方法,以及特殊处理
listctrl自绘带颜色, 新手 参考研究用
这是一个可以编辑的 ListCtrl 源代码,这是一个可以编辑的 ListCtrl 源代码
详细总结了wxpython中Listctrl方法使用。
在MFC中向ListCtrl的subItem0添加icon图标,用定时器定时去改变图标。
改变ListCtrl字体和颜色
ListCtrl功能扩展,简单的ListCtrl功能实现源代码,提供一个实例~~
ListCtrl的一个简单的功能,不够成熟,请指教