mfc控件——list control的使用
【前话】
编译原理的第一个实验——词法分析器验收时,老师要求最后的结果用GUI的形式表现出来。想想确实,黑白的控制台应用程序界面在用户操作时的确不如GUI 友好。GUI界面也算是大势所趋。我现在掌握三种语言的基本语法——c/c++、Java和python。python好久之前学过然后没用就忘记了,最近想写网络爬虫才又重新去看,对于python写GUI也是一窍不通,不做考虑。自认为Java写GUI比较方便,但是实验代码已经用c写完了,所以最后 决定用mfc做这个GUI。
到了大二下陆陆续续的做了一些mfc,每次用一个新控件都是网上各种找然后XJBG一下就完成了。每次要用的时候又要找,所以打算每学习一个控件就就写个随笔系统地记录一下使用方法和心得。
废话不说,下面上list control的用法。
【list control】
在console中可以用#include<iomanip>的setw()来设置输出的格式,原本认为mfc里的控件edit control里也这样输出一下就可以了,结果做出来的效果是这样的:
看来用setw()方法不能得到想要的效果,而且edit control里的文本可以随意更改,所以想找一个类似列表的控件作为输出显示。
最后得到这样的效果,就要用到今天要介绍的list control。
拖到对话框后的显示是这样的:
选中控件,修改将外观中的View项从Icon改为Report,再调整大小。
然后右键->类向导->成员变量,设置如下图:
接下来在CProjectNameDlg.cpp文件的OnInitDialog()函数中初始化list的列属性并进行设置:
DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES; m_list.SetExtendedStyle(dwStyle);
第一句得到m_list的风格。
LVS_EX_FULLROWSELECT为整行选中,当鼠标点击某个单元式那一整行都选中。
LVS_EX_GRIDLINES为添加网格线。
第四句将我们配置的风格添加到m_list。
接下去设置每列的属性:
m_list.InsertColumn(, _T(); m_list.InsertColumn(, _T(); m_list.InsertColumn(, _T(); m_list.InsertColumn(, _T(); m_list.InsertColumn(, _T();
我按照自己的理解来说下函数的用法。InsertColumn(设置的列是第几列,列的属性名,属性名的格式,列宽)。
然后就是在触发某个控件后在list control中显示。这里触发可以是按了某个按钮或者读入了某个文件Balabala...
m_list.InsertItem(n, CStr1); m_list.SetItemText(n, , CStr2); m_list.SetItemText(n, , CStr3); m_list.SetItemText(n, , CStr4); m_list.SetItemText(n, , CStr5);
InsertItem(n, CStr) 是将CStr加入第n行第0列。这里n也是从0开始计的。
SetItemText(n, line, CStr) 是在第n行第line列加入CStr。但是如果用SetItemText加入第0列的元素是没效果的
我的理解是先用InsertItem()申请了一行的list可用,后面的才可以用SetItemText()加入。
两个函数插入list中的元素必须是CString类型。我一般都是把所有东西转化成string,然后用CString CStr(string.c_str())来解决的。。。
然后CY告诉我一个很好用的东西:stringstream。以后用的多了也写篇随笔总结下好了。
最后是list control的清空方法:m_list.DeleteAllItems()。
mfc控件——list control的使用的更多相关文章
- MFC控件Slider Control的使用
写MFC界面程序时,今天恰好用到Slider控件,做一个小小的记录. 步骤 1.在工具栏中添加Slider Control控件: 2.在控件上右键->添加变量(Add Variable...), ...
- VS2010/MFC常用控件:图片控件Picture Control
图片控件Picture Control 本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到 ...
- VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)
前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件的创建.CTreeCtrl类的主要成员函数和应用实例. 树形控件的创建 MFC为树形控件提 ...
- VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)
前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
上一节是关于列表视图控件List Control的上半部分,简单介绍了列表视图控件,其通知消息的处理和有关结构体的定义.本节继续讲解下半部分,包括列表视图控件的创建.CListCtrl类的主要成员函数 ...
- VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)
上一节中鸡啄米讲的是滚动条控件,本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到的静态文 ...
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
前面一节中,鸡啄米讲了图片控件Picture Control,本节为大家详解列表视图控件List Control的使用. 列表视图控件简介 列表视图控件List Control同样比较常见, ...
- Visual studio C++ MFC之列表控件CListCtrl Control
背景 本篇旨在MSDN帮助文档下总结列表控件CListCtrl Control的使用,并列出碰到的具体问题. 正文 列表型控件List Control的类是ClistCtrl,具体成员对象详见链接,以 ...
- Visual studio C++ MFC之树形控件Tree Control
背景 本篇旨在MSDN帮助文档下总结树形控件Tree Control的使用,并列出碰到的具体问题. 正文 树形控件Tree Control的类则是CTreeCtrl,具体成员对象详见链接,以下则描述一 ...
随机推荐
- 如何使用AssemblyInfo中的Attribute?
问题:在生成的项目文件中有个文件:Properties ->AssemblyInfo.cs,可以为程序添加一些属性.主要用来设定生成的有关程序集的常规信息dll文件的一些参数,下面是默认的Ass ...
- [Spring MVC] - Annotation验证
使用Spring MVC的Annotation验证可以直接对view model的简单数据验证,注意,这里是简单的,如果model的数据验证需要有一些比较复杂的业务逻辑性在里头,只是使用annotat ...
- [Spring] - Spring + Hibernate
Spring整合Hibernate,花了很长时间研究,其中碰到的比较多问题. 使用的是Spring3.0+Hibernate4.1.6,Spring整合最新版本的Hibernate4.5,会抛些奇奇怪 ...
- json_encode和json_decode
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}' ...
- C++中引用的本质
一般的教材上讲到引用时,都是说"引用是对象的一个别名".我认为这种定义是不清晰的,不利于初学者理解引用.至少我自己曾经被这个定义困扰了一段时间.到底什么是"别名" ...
- Spring AOP 完成日志记录
Spring AOP 完成日志记录 http://hotstrong.iteye.com/blog/1330046
- [CF442B] Andrey and Problem (概率dp)
题目链接:http://codeforces.com/problemset/problem/442/B 题目大意:有n个人,第i个人出一道题的概率是pi,现在选出一个子集,使得这些人恰好出一个题的概率 ...
- Extjs 4.2 Grid增删改及后台交互(Java)
上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录.苦于抽不出时间,一直拖到现在.不得不说,Extjs确实很强大,新版的Neptun ...
- NOIP模拟赛-时间与空间之旅
题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship船长也成了最热门的职业之一.当然,要成为一名出色的船 ...
- MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法
MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法 错误2,系统找不到文件. 开始...运行... regedit 注册表项: HKEY_LOCAL_ ...