首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFC: CListView的CListCtrl::InsertItem(0,"test",imageindex)显示在列表末尾而不是开始?

MFC是Microsoft Foundation Class的缩写,是微软提供的一套用于开发Windows应用程序的类库。CListView是MFC中的一个类,用于显示列表视图控件。CListCtrl是CListView的派生类,用于显示带有多列的列表视图控件。

在使用CListCtrl的InsertItem函数插入项时,第一个参数是项的索引,第二个参数是项的文本,第三个参数是项的图像索引。根据提供的代码,InsertItem函数的第一个参数为0,表示将项插入到列表的第一个位置。然而,实际上插入的项显示在列表的末尾而不是开始。

这种情况可能是由于列表控件的排序属性导致的。默认情况下,CListCtrl是按照项的文本进行排序的。因此,当插入项时,列表控件会根据项的文本进行排序,并将其放置在适当的位置,而不是插入到指定的索引位置。

要解决这个问题,可以通过设置列表控件的排序属性来禁用排序。可以使用CListCtrl的SetExtendedStyle函数,将LVS_EX_SORTASCENDING和LVS_EX_SORTDESCENDING风格位与列表控件的扩展风格中,以禁用排序功能。示例代码如下:

代码语言:txt
复制
m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | LVS_EX_SORTASCENDING | LVS_EX_SORTDESCENDING);

另外,如果需要在列表的指定位置插入项,可以使用CListCtrl的InsertItem函数的第一个参数传入指定的索引位置。

关于MFC、CListView和CListCtrl的更多详细信息,您可以参考腾讯云的文档和示例代码:

请注意,以上链接是腾讯云的相关文档和产品介绍,仅供参考。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CListCtrl使用「建议收藏」

MFC中使用CListCtrl类来封装列表控件各种操作。...•LVS_SHOWSELALWAYS 失去焦点时也显示当前选中结点 •LVS_SINGLESEL 同时只能选中列表中一项 CListCtrl初始化使用过程: 1....设置列表各项文字列表。 通过调用int InsertItem( int nItem, LPCTSTR lpszItem )可以列表控件中nItem指明位置插入一项,lpszItem为显示字符。...对于列表控件可能取值和对应数据结构为: •LVN_BEGINLABELEDIT 开始某项编辑字符时发送,所用结构:NMLVDISPINFO •LVN_ENDLABELEDIT...*pResult = 0; } 关于编辑某项显示字符: (报表风格中只对第一列有效)首先需要设置列表控件 LVS_EDITLABELS风格,开始编辑时该控件将会发送LVN_BEGINLABELEDIT

1K20

VC控件使用小结

CString strChoosed =m_listctrl.GetItemText(indexRow,1);   //获取当前选中行第2列(列标号从0开始)对应文本值 2、删除所有列    ...我使用MFC做媒体播放器时,涉及到ADO数据库查询后将查询结果放在CListCtrl控件上。查询一次后,当第二次查询时,必须清除上次结果所有内容,包括列标题头和显示内容。...删除显示内容比较容易,直接使用CListCtrlDeleteAllItems就可以了;删除列标题就有点麻烦了。这个问题困扰了我很久,终于一篇CSDN帖子找到了相应解决方案。...CListCtrl控件变量对应列表头指针 iCount = pHeadCtrl->GetItemCount();  //获取列表列数 for(i = 0; i < iCount; i++) ...",0,0,root2,TVI_LAST);  m_playlistTreeCtrl.InsertItem("周杰伦List",0,0,root2,TVI_LAST); 2、 //清空播放列表CTreeCtrl

1.8K10

CListCtrl详细使用方法

以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFCCListCtrl类 SDK:以 “ListView_”开头一些宏。...如 ListView_InsertColumn CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST...: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观理解:windows资源管理器,“查看”标签下“大图标,小图标,列表,详细资料” 设置listctrl 风格及扩展风格...subitem添加图标 m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES); m_list.SetItem(..); //具体参数请参考msdn CListCtrl.../kb/141834/en-us 添加item后,再InsertColumn()后导致整列数据移动问题 Q151897: CListCtrl::InsertColumn() Causes Column

1.1K20

ClistCtrl用法及总结(由怎样隐藏ListCtrl列表排序小三角形这个bug学习到知识)

1 怎样隐藏ListCtrl列表排序小三角形 创建控件是加入|LVS_NOSORTHEADER风格即可。 一下是用法总结: 本文根据本人在项目中应用,来谈谈CListCtrl部分用法及技巧。...主要包括以下十三点内容:基本操作、获取选中行行号、复选框操作、动态设置选中行字体颜色、设置选中行背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动...本篇重点总结:基本操作、获取选中行行号、复选框操作、动态设置选中行字体颜色、设置选中行背景颜色   1、基本操作      分别从下面四点来介绍CListCtrl基本操作: ①设置列表视图显示方式...对于列号为0那一列,始终是靠左显示,后面会有修改使其剧中显示方法,其他列通过设置nFormat属性可以居中显示。...*pResult = CDRF_DODEFAULT; } }  上面谈方法主要用于设置静态字体颜色,当然,如果你列表信息不断变化(即用SetItemText不断修改),那么也就实现了动态改变了

2.9K50

C++ MFC实现list控件对Excel读取

前面已经讲过了C++ MFC程序对Excel文件写入,链接如下: https://blog.csdn.net/V_Gogol/article/details/81782644 后面很长时间没有更新读取数据操作...我将读取和写入操作都封装成了一个专门类,便于后续调用: list控件读取Excel数据 将Excel数据读取到mfc控件中,我写函数适用于Excel文件列数和list控件列数相同情况,此处提供源码...具体代码如下: //参数为列表控件 void CFileRW::ExcelToList(CListCtrl *datalist) { //文件对话框,打开具体Excel文件 CFileDialog...()); long colnum = range.get_Count(); //取得已使用区域起始行,从1开始 long startrow = range.get_Row(); //取得已使用区域起始列...else if (vResult.vt == VT_I4) { strread.Format(_T("%ld"), (int)vResult.lVal); }; datalist->InsertItem

79630

CListCtrl控件使用方法总结

今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFCCListCtrl...CListCtrl 风格       LVS_ICON: 为每个item显示大图标       LVS_SMALLICON: 为每个item显示小图标       LVS_LIST: 显示一列带有小图标的...item       LVS_REPORT: 显示item详细资料       直观理解:windows资源管理器,“查看”标签下“大图标,小图标,列表,详细资料” ---- 2....", LVCFMT_LEFT, 50 );       int nRow = m_list.InsertItem(0, “11”);//插入行       m_list.SetItemText(nRow...判断是否点击listctrlcheckbox上       添加listctrl控件NM_CLICK消息相应函数       void CTest6Dlg::OnClickList1(NMHDR

1.8K130

MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件「建议收藏」

List Control同样比较常见,它能够把 任何字符串内容以列表方式显示出来,这种显示方式 特点是整洁、直观,实际应用中能为用户带来方便。...当然列表项可以只包含图 标也可以只包含标签 Tree Control控件 树形控件Windows系统中是很常见,例如资源 管理器左侧窗口中就有用来显示目录树形视图。...树形控件插入新树节点时会稍麻烦些,回顾之 前列表框,插入新列表项时调用AddString成员函数 就可以了,而对于树形控件则需要指定新节点与已有节 点关系。...另外,树形控件与列表视图控件一样,可以 每一个节点左边加入图标。这些都使得树形控件给 人一种复杂感觉,但我们使用它一两次后会发现其 实树形控件用起来还是很方便。...像列表框和组合框设置了WS_HSCROLL或 WS_VSCROLL风格以后出现滚动条,不是一个独立窗 口,而是这些窗口一部分,这就是标准滚动条。

2.5K10

MFC应用技术之CTreeControl使用

MFC应用技术之CTreeControl使用 一丶MFC添加树控件.添加父节点跟子节点.   ...MFC上面放一个树控件.并未这个树控件绑定变量.然后添加一个按钮.按钮作用就是添加父节点跟子节点. PS: 关于MFC如果添加控件.这里不做讲解.此篇只用于应用.所以常用都会列举出来.   ...信号结束编辑标签 TVN_GETDISPINFO请求树控件需要显示信息。...TVN_ITEMEXPANDED子项父项列表展开或折叠信号 TVN_ITEMEXPANDING子项父项列表会展开或折叠信号 TVN_KEYDOWN信号键盘事件 TVN_SELCHANGE信号从中选择一项更改为另一个架构...返回值是微软已经给我们转好.所以我们需要信息就在里面.我们可以看下结构内容. LPNMTREEVIEW 这是一个宏.宽版本还是A版本. 熟悉Windows都应该知道.

1.2K10

MFCCListCtrl最左边一列必须左对齐吗?

好久不写MFC程序了,很多细节问题都记不清了,今晚无意中要用到CListCtrl控件,希望能够表头采用自己绘制方式显示,于是自己编写了OnPaint方法进行重绘,过程中需要根据每一列对齐方式进行绘制表头中标题文字... lpBuffer;    tItem.cchTextMax = 256;   tItem.mask = HDI_FORMAT | HDI_TEXT;   GetItem(i, &tItem);   取得了列信息之后...中插入列时候,第一列我设置成了剧中对齐,但是结果无论如何都得不到正确结果,偏偏其他列我又是设置左对齐,所以结果所有列都是左对齐,于是我认为是不是GetItem没有取得对齐方式数据,结果到MSDN...中寻找帮助,结果一无所获,后来想想是不是MSDN太旧了,就到微软MSDN网站查看帮助文档,结果在说明中发现了这样一句话: Remarks The leftmost column in a list...不觉感叹道:这是谁规定啊?真是不地道。 于是问题又来了,如果让第一列能够做到剧中对齐呢?通过实验发现在InsertColumn时候第一个参数就是列索引,取值从1开始,这样就可以解决问题了。

1.4K60

【转】使用DirectUI技术实现QQ界面

还能大大减少代码量,因为据统计,传统MFC程序中,界面代码大约占总代码1/3强!也就是说,这个1/3代码都可以由xml+javascript替代!...同理,如果网页开发时,每个图片都需要由web程序绘制,你能想象一个网页代码量有多少吗? 简直不能想象,传统Window程序就是如此!...参照网页开发中JavaScript,DirectUI JavaScript可以控制控件状态、文本、显示/隐藏、位置等等属性。...像这样需求,界面开发中是比较常见c++代码中,剩余只是界面与程序逻辑借口。比如,QQ2009中从服务器接收添加用户通知,然后操作界面将此用户显示出来。...如果是用CListCtrl,那么有两种办法:CListCtrl中再创建几个CListCtrl,用来表示Item。但这有些弊端:一个窗口内子窗口数量有限、使CListCtrl过于庞大,影响性能。

1.8K50

任务管理器编码详解

首先创建一个MFC应用程序, 主对话框类中添加一个TabContrl标签控件用于放置应用程序、进程和CPU信息三个页面, 子对话框显示与切换,是通过标签控件完成。...; //图表 接下来就创建子窗口: m_Tab.InsertItem(0, _T("应用程序"), 60);//向tab控件中添加每个参数选项卡值 m_Tab.InsertItem(1, _T("进程信息...这样便可将在个对话框分别显示于标签控件每个页面中,但要实现选择标签不同项显示不同页面还需OnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)添加显示代码...,可以是TH32CS_SNAPPROCESS等 DWORD th32ProcessID //一个进程ID号,用来指定要获取哪一个进程快照,当获取系统进程列表或获取 当前进程快照时可以设为0 Process32First...还发现了自己一些不足之处:最重要就是犹豫不前,搜索到以后就一个就可以开始写,我们要在写过程中发现自己问题,不是先整体上有框架,知道具体实现过程,这是不可取。正确做法是要边做边发现问题。

2K110

【大三操作系统实验】 请求页式管理中置换算法

(2)LRU算法基本思想:当需要淘汰某一页时,选择离当前时间最近一段时间内最久没有使用过页先淘汰。  (3)OPT算法基本思想:访问串中将来再也不出现或是离当前最远位置上出现页。 ...For MFC applications using the document/view model,    //  this is automatically done for you by the...            itoa(k,cha,10);            cs="内存第页";  //汉字双字节,注意            cs.Insert(6,cha);            m_list->InsertItem...int num)    {        int Max=count_0[0];        int Max_stay=0;        for(int n=1;n<num;n++) //找出最大数下标...sizeof(int)*num);  //从0开始        for(int n=0;n<num;n++)            for(i=p;i<19;i++)  //下一个开始

53130

CListCtrl大数据显示

大家好,又见面了,我是你们朋友全栈君。 CListCtrl是个很方便东西,但是当数据大到一个程度(比如说10万条数据),显示速度就会非常慢。解决办法就是用虚拟列表。...CListCtrl显示数据原理是将需显示所有数据拷贝它内部一块空间里,然后显示出来。一但数据量过大,拷贝时间就会延长,显示速度当然也就非常慢了。...虚拟列表则不需要将显示数据拷贝到内部空间,它做法是当需要显示某个数据时,才将数据拷入内部空间。看上去好像和普通CListCtrl做法相同,实则大不一样。因为列表一屏数据,最多也就几百行。...一个是ImportData,作用是导入需要显示数据。里面只有两条语句,第一条为获取数据指针,第二条为设置列表长度(一共有多少条数据)。这个是自定义函数,可以自定义函数名和导入数据结构。...这个函数是事件函数,当列表一个单元格需显示时候调用。 使用时,还需要将列表控件“所有者数据”属性设为“true”。

73320
领券