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
CString strChoosed =m_listctrl.GetItemText(indexRow,1); //获取当前选中行的第2列(列标号从0开始)对应的文本值 2、删除所有列 ...我在使用MFC做媒体播放器时,在涉及到ADO数据库查询后将查询结果放在CListCtrl控件上。查询一次后,当第二次查询时,必须清除上次结果的所有内容,包括列标题头和显示行的内容。...删除显示内容比较容易,直接使用CListCtrl类的DeleteAllItems就可以了;删除列标题就有点麻烦了。这个问题困扰了我很久,终于在一篇CSDN的帖子找到了相应的解决方案。...CListCtrl控件变量对应的列表头指针 iCount = pHeadCtrl->GetItemCount(); //获取列表头的列数 for(i = 0; i 0,0,root2,TVI_LAST); m_playlistTreeCtrl.InsertItem("周杰伦List",0,0,root2,TVI_LAST); 2、 //清空播放列表CTreeCtrl
以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 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
CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的...item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料” 2....如何在CListView中使用CListCtrl的派生类 http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919...在CListCtrl显示文件,并根据文件类型来显示图标 网上找到的代码,share BOOL CTest6Dlg::OnInitDialog() {...在添加item后,再InsertColumn()后导致整列数据移动的问题 Q151897: CListCtrl::InsertColumn() Causes Column Data to Shift
在菜单上选择 项目-〉添加类-〉MFC->activex控件中的mfc类-〉添加。 4、选择 windows media player,添加IWMPControls类。...此时添加的变量在VS2003中不在时IWMPPlay4 了,而是COcx。...为图方便,我将所有接口都生成了相应的类。 为了说明方便,我在对话框中放了几个按钮,分别是:打开,播放,暂停,停止,添加。并在对话框右边添加了一个clistctrl又来显示播放列表。...m_listCtrl; media player 的主要功能有:播放控制,屏幕显示,播放列表,播放列表集,播放信息显示。... m_listCtrl.InsertItem(0, m_media.get_name()); } l 接着是屏幕显示控制 m_avPlayer.put_fullScreen
1 怎样隐藏ListCtrl列表头的排序小三角形 在创建控件是加入|LVS_NOSORTHEADER风格即可。 一下是用法总结: 本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。...主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动...本篇重点总结:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色 1、基本操作 分别从下面四点来介绍CListCtrl的基本操作: ①设置列表视图显示方式...对于列号为0的那一列,始终是靠左显示,后面会有修改使其剧中显示的方法,其他列通过设置nFormat属性可以居中显示。...*pResult = CDRF_DODEFAULT; } } 上面谈的方法主要用于设置静态字体颜色,当然,如果你的列表的信息在不断变化(即用SetItemText不断修改),那么也就实现了动态改变了
前面已经讲过了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
今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl...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...判断是否点击在listctrl的checkbox上 添加listctrl控件的NM_CLICK消息相应函数 void CTest6Dlg::OnClickList1(NMHDR
List Control同样比较常见,它能够把 任何字符串内容以列表的方式显示出来,这种显示方式 的特点是整洁、直观,在实际应用中能为用户带来方便。...当然列表项可以只包含图 标也可以只包含标签 Tree Control控件 树形控件在Windows系统中是很常见的,例如资源 管理器左侧的窗口中就有用来显示目录的树形视图。...树形控件在插入新的树节点时会稍麻烦些,回顾之 前的列表框,插入新列表项时调用AddString成员函数 就可以了,而对于树形控件则需要指定新节点与已有节 点的关系。...另外,树形控件与列表视图控件一样,可以 在每一个节点的左边加入图标。这些都使得树形控件给 人一种复杂的感觉,但我们在使用它一两次后会发现其 实树形控件用起来还是很方便的。...像列表框和组合框设置了WS_HSCROLL或 WS_VSCROLL风格以后出现的滚动条,不是一个独立的窗 口,而是这些窗口的一部分,这就是标准滚动条。
这段时间在使用MFC做媒体播放器项目,查询了不少资料,用到的技术主要有ADO、多线程、DirectShow、MFC相关控件包括ActiveX控件(Windows Media Player、Active...对应的17个类的使用、MFC的列表框CListBox、树控件CTreeCtrl、CListCtrl等控件、多线程的使用等。...,比如说查询数据库的左右侧窗口、播放列表显示部分等。...,比如IDR_MAINFRAME_MENU,这样的话就可以在该对话框类对象创建时使用时就可以显示该菜单了。...//加载菜单 CMenu menu; menu.LoadMenu(IDR_MENU1); SetMenu(&menu); 4、MFC中各种指针的获取 VC中编程对于刚刚开始学习的同学
补发:2021-11-13 ---- MFC基础篇 以C++类的形式对WINDOWS API进行封装。...(metafile); //删除元文件 DeleteMetaFile(metafile); //无效界面-请求重绘 Invalidate(); 兼容设备描述表 兼容设备是一种内存设备,在显示图像的过程中...,可以先在内存中准备这些图像,之后可以直接拷贝内存数据到真实的设备中,完成图像的显示。...* list = (CListBox*)GetDlgItem(IDC_LIST1); //获取当前在列表中的选择,返回一个整型,该选项在列表中的位置 int n = list->GetCurSel...//分别是:未选中时显示哪张图片,被选中时显示哪在张。
MFC应用技术之CTreeControl的使用 一丶MFC添加树控件.添加父节点跟子节点. ...MFC上面放一个树控件.并未这个树控件绑定变量.然后添加一个按钮.按钮的作用就是添加父节点跟子节点. PS: 关于MFC如果添加控件.这里不做讲解.此篇只用于应用.所以常用的都会列举出来. ...信号的结束编辑标签 TVN_GETDISPINFO请求树控件需要显示的项的信息。...TVN_ITEMEXPANDED子项父项的列表展开或折叠的信号 TVN_ITEMEXPANDING子项的父项列表会展开或折叠的信号 TVN_KEYDOWN信号键盘事件 TVN_SELCHANGE信号从中选择一项更改为另一个架构...而返回值是微软已经给我们转好的.所以我们需要的信息就在里面.我们可以看下结构内容. LPNMTREEVIEW 这是一个宏.宽版本还是A版本. 熟悉Windows的都应该知道.
首先创建一个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...还发现了自己的一些不足之处:最重要的就是犹豫不前,搜索到以后就一个就可以开始写,我们要在写的过程中发现自己的问题,而不是先整体上有框架,知道具体的实现过程,这是不可取的。正确的做法是要边做边发现问题。
好久不写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开始,这样就可以解决问题了。
还能大大减少代码量,因为据统计,传统MFC程序中,界面代码大约占总代码的1/3强!也就是说,这个1/3的代码都可以由xml+javascript替代!...同理,如果网页开发时,每个图片都需要由web程序绘制,你能想象一个网页的代码量有多少吗? 简直不能想象,而传统Window程序就是如此!...参照网页开发中的JavaScript,DirectUI JavaScript可以控制控件的状态、文本、显示/隐藏、位置等等属性。...像这样的需求,在界面开发中是比较常见的。 在c++代码中,剩余的只是界面与程序逻辑的借口。比如,QQ2009中从服务器接收添加用户的通知,然后操作界面将此用户显示出来。...如果是用CListCtrl,那么有两种办法:在CListCtrl中再创建几个CListCtrl,用来表示Item。但这有些弊端:一个窗口内子窗口的数量有限、使CListCtrl过于庞大,影响性能。
下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。 ...2、向控件添加 Items 1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。...在MFC 4.2中对组合框进行了增强,你可以在组合框中使用ImageList,有一个新的类CComboBoxEx(由CComboBox派生)来实现这一功能。...,设置iImage为显示的图标索引。...;insItem.mask=CBEIF_IMAGE CBEIF_TEXT;insItem.iItem=0; insItem.iImage=0;insItem.pszText="Line 1";m_cbeWnd.InsertItem
(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的下标...sizeof(int)*num); //从0开始 for(int n=0;n开始比
大家好,又见面了,我是你们的朋友全栈君。 CListCtrl是个很方便的东西,但是当数据大到一个程度(比如说10万条数据),显示速度就会非常的慢。解决办法就是用虚拟列表。...CListCtrl显示数据的原理是将需显示的所有数据拷贝在它内部的一块空间里,然后显示出来。一但数据量过大,拷贝的时间就会延长,显示速度当然也就非常慢了。...而虚拟列表则不需要将显示数据拷贝到内部空间,它的做法是当需要显示某个数据时,才将数据拷入内部空间。看上去好像和普通CListCtrl的做法相同,实则大不一样。因为列表一屏的数据,最多也就几百行。...一个是ImportData,作用是导入需要显示的数据。里面只有两条语句,第一条为获取数据指针,第二条为设置列表长度(一共有多少条数据)。这个是自定义函数,可以自定义函数名和导入的数据结构。...这个函数是事件函数,当列表中的一个单元格需显示的时候调用。 使用时,还需要将列表控件的“所有者数据”属性设为“true”。
= mysql_real_connect(&mydata, "localhost", "root", "test", "test", 3306, NULL, 0)) //这里的地址,用户名,密码,端口可以根据自己本地的情况更改...for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。...vs2010中的设置,在:项目-属性-配置属性-VC++目录-包含目录 (2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL...=0){ AfxMessageBox("删除失败"); } (4)读取表格内容到CListCtrl控件m_list m_list.DeleteAllItems(); char *ch_query;...result)){ str.Format("%s",row0); m_list.InsertItem(i,str); str.Format("%s",row1); m_list.SetItemText(
(包括隐藏的项). 4.void setViewMode(QListView::); //设置QListWidget对象的显示模式.默认是列表模式....//图标模式. ui.listWidget->setViewMode(QListView::IconMode); 5.int currentRow(); //返回当前选择项的行.从0开始,可以看成是当前项在...= 0) delete ite; 9.void insertItem(int, const QString&); //在指定位置插入一个项,如果在下标为2的位置插入一个项的话,那么这个项就占据下标为...要注意的是它有两个参数,其中的row参数,也就是行数,是从0开始计数的这一点和索引一样,所以要特别注意。...addItems()和insertItem()的区别在于前者在末尾追加数据,后者可以在任意位置插入数据。
领取专属 10元无门槛券
手把手带您无忧上云