文档章节

MFC_list Control列表/表格控件

一个小妞
 一个小妞
发布于 2017/09/27 10:29
字数 390
阅读 31
收藏 0

先看一下这个控件有些什么属性吧:

1.样式View:Report表格,list列表

2.设置风格:SetExtendedStyle

SetExtendedStyle函数的定义形式为:

DWORD SetExtendedStyle(DWORD dwNewStyle );

参数:dwNewStyle:CListCtrl的扩展样式(LVS_EX_GRIDLINES //绘制表格;LVS_EX_SUBITEMIMAGES//子项目图标列表;LVS_EX_CHECKBOXES //带复选框;LVS_EX_TRACKSELECT //自动换行;LVS_EX_HEADERDRAGDROP//报表头可以拖拽;LVS_EX_FULLROWSELECT //选择整行;LVS_EX_ONECLICKACTIVATE//单击激活;LVS_EX_TWOCLICKACTIVATE//双击激活;LVS_EX_FLATSB//扁平滚动条;LVS_EX_REGIONAL;LVS_EX_INFOTIP;LVS_EX_UNDERLINEHOT;LVS_EX_UNDERLINECOLD;LVS_EX_MULTIWORKAREAS//多工作区)

SetExtendedStyle函数的具体用法如例:

m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT );

3.滚动条位置Left Scrollbar:滚动条在左侧还是右侧

4.MFC的表格不允许编辑,如果想编辑只能在编辑开始事件中把单元格处理成Edit,在编辑结束后把edit的值更新到list里:

(1)首先属性Edit Labels设为true;

(2)增加事件响应函数:

ON_NOTIFY(NM_DBLCLK, IDC_LIST_COORD, &CCoordManageDlg::OnNMDblclkListCoord)
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST_COORD, &CCoordManageDlg::OnLvnEndlabeleditListCoord)

双击事件:

void CCoordManageDlg::OnNMDblclkListCoord(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	*pResult = 0;

	POSITION pos = m_listCoord.GetFirstSelectedItemPosition();
	int nSel = m_listCoord.GetNextSelectedItem(pos);
	if ( nSel >= 0 )
	{
		m_listCoord.SetFocus();
		CEdit* pEdit = m_listCoord.EditLabel( nSel );
	}
}

edit编辑结束事件

void CCoordManageDlg::OnLvnEndlabeleditListCoord(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
	*pResult = 0;

	CString strName = pDispInfo->item.pszText;
	int nSel = pDispInfo->item.iItem;
	m_listCoord.SetFocus();

	if( ( ! strName.IsEmpty() ) && nSel >= 0 )
		m_listCoord.SetItemText( nSel, 0, strName);
}

(5)点击表头,获取列头的编号

ON_NOTIFY(HDN_ITEMCLICK, 0, &CStartDlg::OnHdnItemclickListStartmonitor)
void CStartDlg::OnHdnItemclickListStartmonitor(NMHDR *pNMHDR, LRESULT *pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	int nRow =  pNMListView->iItem;
	switch(nRow)
	{
	case 0:
		break;
	case 1:
		break;
	}	
}

 

© 著作权归作者所有

上一篇: KML格式的文件
下一篇: Reactor反应器模式
一个小妞
粉丝 65
博文 190
码字总数 133769
作品 0
海淀
程序员
私信 提问
VS2010/MFC编程入门教程之目录和总结(鸡啄米)

鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够。以此教程的知识为基础,学习VS2010/MFC较为深入的内容已非难事...

weixin_40647819
2018/05/23
0
0
win32实现List Control

到目前为止,还没有正儿八经的写过MFC程序,虽然现在自己把MFC的框架看得差不多,但是还是不想 使用MFC写代码,做界面MFC是关键,这是谁也无法逃脱的框架,好了,废话少说,说说自己的实现。...

ryany
2011/01/10
660
0
CGridCtrl控件类的用法

开源的CGridCtrl类,是VC中的可用的表格控件。相对VC自带的CListCtrl网格控件功能要强很多。但是除原工程代码自带的示例外,很少有完整描述使用的过程。在VC2015中的用法如下: (1)先将源代...

Chinayu2014
2018/05/30
0
0
CListBox控件的Multicolumn属性

在MFC编程中,如果用到了ListBox这个控件,如果你想要用它来显示多列,那么你就要注意了,ListBox有一个属性叫:Multicolumn, 它的解说如下: Specifies a multicolumn list box that is scrolled...

长平狐
2013/03/19
98
0
vc第三方界面库BCGControlBar与Xtreme Toolkit对比

vc第三方界面库BCGControlBar与Xtreme Toolkit对比 BCGControlBar简介 BCGControlBar专业版(BCGControlBar Pro for MFC )是MFC的扩展类库,一直是MFC界面领域的老大哥,而且是微软合作商,对...

baobiaokongjian
2014/08/16
6.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
140
7
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
18
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
11
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部