博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CMFCListCtrl控件使用
阅读量:4154 次
发布时间:2019-05-25

本文共 1663 字,大约阅读时间需要 5 分钟。

CMFCListCtrl是MS从CListCtrl派生出来的新类,灵活性上有所进步,特别是改变行列颜色、改变字体,不用像CListCtrl很多步骤,要处理很复杂的数据结构。现在记录下,先看效果图

  1. 用类向导从CMFCListCtrl派生出CMyListCtrl类;
  2. 声明虚函数
    virtual COLORREF OnGetCellTextColor(int nRow, int nColum);	virtual COLORREF OnGetCellBkColor(int nRow, int nColum);	virtual HFONT OnGetCellFont(int nRow, int nColum, DWORD dwData = 0);
  3. 实现函数里写
    COLORREF CMyListCtrl::OnGetCellTextColor(int nRow, int nColum){	return(nRow % 2) == 0 ? RGB(128, 37, 0) : RGB(0, 0, 0);}COLORREF CMyListCtrl::OnGetCellBkColor(int nRow, int nColum){	return(nRow % 2) == 0 ? RGB(253, 241, 249) : RGB(196, 238, 254);}HFONT CMyListCtrl::OnGetCellFont(int nRow, int nColum, DWORD /*dwData* = 0*/){	return afxGlobalData.fontDefaultGUIBold;	}
  4. 标题栏也是可以改变的,改变了字体
    m_font.CreateFont(20,0,0,0,FW_DONTCARE,FALSE,FALSE,0, 1,  		OUT_DEFAULT_PRECIS,   		CLIP_DEFAULT_PRECIS,  		DEFAULT_QUALITY,   		DEFAULT_PITCH|FF_SWISS,  		_T("宋体")); 	m_wndListCtrl.GetHeaderCtrl().SetFont(&m_font);

=====================================================================

2015.1.23今天找到了一个设置行高的投机取巧方法

添加一个方法

void CMyListCtrl::SetRowHeight(int nHeight){	CImageList im;	im.Create(1, nHeight, ILC_COLOR4, 10, 10);	SetImageList(&im, LVSIL_SMALL ); }
注意这里虚拟插入的icon的宽度为1,高度为需要设定的行高,运行之后效果如下

==================================

2015.7.20

新增加一个自动调整最后一列列宽的方法供调用,需要添加完表头后显式调用

void CMyListCtrl::AutoColumn(void)//自动调节最后一列{	CRect xRect;	int nLastColumnWidth = 0;	int nColumnNum = 0;	GetClientRect(&xRect);//OleControl的	nLastColumnWidth = xRect.Width();	nColumnNum = GetHeaderCtrl().GetItemCount();	for (int i = 0; i < nColumnNum - 1; i++)		nLastColumnWidth = nLastColumnWidth - GetColumnWidth(i);	SetColumnWidth(nColumnNum - 1, nLastColumnWidth);}

你可能感兴趣的文章
rsync+inotify实现服务器之间文件实时同步
查看>>
Pushlet 2.0.3 源码分析
查看>>
Maven仓库管理-Nexus
查看>>
Maven环境下搭建Nexus本地仓库
查看>>
Maven最佳实践:版本管理
查看>>
SVN服务器搭建和使用(一)
查看>>
SVN服务器搭建和使用(二)
查看>>
39个让你受益的HTML5教程
查看>>
pushlet简单例子ajax-pushlet-client.js
查看>>
pushlet简单例子js-pushlet-client.js
查看>>
JDK各个版本的新特性 1.5-1.8
查看>>
ExtJS中layout的12种布局风格
查看>>
通用的js分页,排序程序
查看>>
Tomcat6 进入debug模式
查看>>
jQuery插件开发精品教程,让你的jQuery提升一个台阶
查看>>
js将秒转换为时分秒的格式
查看>>
java对redis的基本操作<转>
查看>>
Redis 存储字符串和对象<转>
查看>>
js操作dom元素的属性和方法
查看>>
弹出层 代码
查看>>