学习MFC也有半年多的时间了,对于控件的使用,只是大概知道怎么用,但是记不住,为了日后的使用方便从今天开始将常用到的控件的使用方法记录下来,以方便日后的使用。
对于ListControl控件,有4中模式。对于我来说,一般都是用Report模式,就是报告模式。使用了网上一位大神的两个重绘表头和表的类,能够方便的对表进行字体、颜色、单元格等控制确实很不错。
使用方法如下:
第一步,在工程中,添加表头和表的两个类:CHeaderCtrlCL和CListCtrlCL;
下载地址:
第二步,在工程中添加一个list conctrol控件,并添加一个CListCtrl类的变量;
第三步,在XXXdlg.h中,添加#include "ListCtrlCl.h"头文件,找到CListCtrl m_list,将它修改成CListCtrlCl m_list;
第四步,就是对list进行一些设置了,下面列出了一些,还有一些用到的时候,再去发掘:
m_list.SetRowHeigt(25); //设置行高度
m_list.SetHeaderHeight(1.5); //设置头部高度
m_list.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应
m_list.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色
m_list.SetTextColor(RGB(0,0,0)); //设置文本颜色
m_list.SetHeaderBKColor(240,250,238,0); //设置头部颜色
m_list.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度
第五步,设置样式。
SetWindowLong(m_list.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
m_list.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格
::SendMessage(m_list.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
以上,就完成了list的基本应用了。
下面记录一下,list常用的功能用法:
1、设置列标题:
CRect rt;
GetClientRect(&rt); //获取客户端的尺寸
m_list.InsertColumn(0,_T("序号"),LVCFMT_LEFT,rt.Width()/8);
m_list.InsertColumn(1,_T("IEDName"),LVCFMT_LEFT,rt.Width()/4);
m_list.InsertColumn(2,_T("IP"),LVCFMT_LEFT,rt.Width()/4);
m_list.InsertColumn(3,_T("注释"),LVCFMT_LEFT,rt.Width()/3);
m_list.InsertColumn(4,_T("网卡"),LVCFMT_LEFT,rt.Width()/4);
2、插入数据:
for (int i=0;i<m_ListVec.size();i++)
{
strindex.Format("%d",m_ListVec[i].index);
m_list.InsertItem(i,strindex);
m_list.SetItemText(i,1,m_ListVec[i].IEDName);
m_list.SetItemText(i,2,m_ListVec[i].IP);
m_list.SetItemText(i,3,m_ListVec[i].Desc);
m_list.SetItemText(i,4,m_ListVec[i].Adapter);
}
3、清空记录
m_list.DeleteAllItems();
4、获取点击选中的行内容
NMLISTVIEW *pNMListView=(NMLISTVIEW *)pNMHDR;
if (pNMListView->iItem!=-1)
{
CString IPstring=m_list.GetItemText(pNMListView->iItem,2);
5、获取多选行的内容
for (int nItem=0;nItem<m_list.GetItemCount();nItem++)
{
if (m_list.GetItemState(nItem,LVIS_SELECTED)==LVIS_SELECTED)
{
6、设置某一行的颜色,清空和设置某一个单元格的颜色
m_list.m_ItemTextColor.RemoveAll();
m_list.SetItemTextColor(1,1,RGB(255,0,0));
以上就是list控件,经常用到的一些功能和用法,还有其他的日后在补充!