您的位置:首页 > 其它

MFC控件之listControl简单应用

2017-07-25 08:14 344 查看

属性:

View : 图标(Icon)、小图标(Small Icon)、列表(List)、报表(Report)

设置风格:

DWORD dwStyle = m_list.GetExtendedStyle(); //获取list control的风格
dwStyle |= LVS_EX_FULLROWSELECT;   //整行选中
dwStyle |= LVS_EX_GRIDLINES;       //显示网格线
m_list.SetExtendedStyle(dwStyle);  //将配置的风格添加到list control控件上


设置标题:

m_list.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 25);
m_list.InsertColumn(1, _T("性别"), LVCFMT_LEFT, 60);
m_list.InsertColumn(2, _T("年龄"), LVCFMT_LEFT, 80);

使用循环添加标题:

typedef struct
{
char *title;  //列表的名称
int nWidth;   //列表的宽度
}COLUMNSTRUCT;
COLUMNSTRUCT g_Column[] =
{
{ "姓名",	25 },
{ "性别",	60 },
{ "年龄",	80 }
};

int Count = 3;

for (int i = 0; i < Count; i++)
{
m_CList_Message.InsertColumn(i, CString(g_Column[i].title), LVCFMT_CENTER, g_Column[i].nWidth);
}

插入行:

m_list.InsertItem(0, _T("000"));        // 参数1 插入位置; 参数2 第一列文本
m_list.SetItemText(0, 1, _T("111"));    // 设置第0行第1列的文本内容
m_list.SetItemText(0, 2, _T("222"));    // 设置第0行第2列的文本内容

m_list.InsertItem(1, _T("333"));
m_list.SetItemText(1, 1, _T("444"));
m_list.SetItemText(1, 2, _T("555"));

m_list.InsertItem(2, _T("666"));
m_list.SetItemText(2, 1, _T("777"));
m_list.SetItemText(2, 2, _T("888"));
m_list.SetItemText(2, 3, _T("999"));


选择整行:

m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT); //设置选中整行


LVS_EX_CHECKBOXES
您可以获得 ListView_GetCheckState 指定项目的复选框的状态。若要设置检查状态,请使用 ListView_SetCheckState。如果设置了此样式,则当用户单击该复选框,或按空格键在列表视图控件自动切换复选状态。
LVS_EX_FLATSB
扁平滚动条

列表视图中的启用平面滚动条。如果您需要更多的控制列表视图滚动条的外观,您应该操作平的滚动栏 Api 使用直接的列表视图滚动条。如果更改系统度量,您负责调整与 FlatSB_SetScrollProp 的滚动栏度量。有关进一步的详细信息请参阅平滚动条。
LVS_EX_FULLROWSELECT
选择整行

当选择某个项目时,强调了项目和其所有子项。此样式是仅在 LVS_REPORT 风格结合中可用。
LVS_EX_GRIDLINES
显示项及其子项周围的网格线。此样式是仅在 LVS_REPORT 风格结合中可用
LVS_EX_HEADERDRAGDROP
报表头可以拖拽

允许拖放的列表视图控件中的列重新排序。此样式是只可用于使用 LVS_REPORT 样式的列表视图控件。
LVS_EX_INFOTIP
将提示信息窗口的消息通知父窗口

当列表视图控件使用的 LVS_EX_INFOTIP 样式时,LVN_GETINFOTIP 通知代码发送到父窗口显示工具提示项之前。
LVS_EX_LABELTIP
 
LVS_EX_MULTIWORKAREAS
多工作区
LVS_EX_ONECLICKACTIVATE
单击激活
LVS_EX_REGIONAL
 
LVS_EX_SUBITEMIMAGES
 
LVS_EX_TR
4000
ACKSELECT
自动换行
LVS_EX_TWOCLICKACTIVATE
双击激活
LVS_EX_UNDERLINECOLD
 
LVS_EX_UNDERLINEHOT
 

获取用户选定的条目索引:

int iSelect = m_list.GetSelectionMark(); //获取用户选定的条目索引

删除指定行:

m_list.DeleteItem(0);


删除指定列:

m_list.DeleteColumn(0);


删除全部:

m_list.DeleteAllItems();                                           //这只不过是删除列表框中的内容


移除全部:

m_list.RemoveAll();


设置列宽:

CRect m_rect;
m_list.GetClientRect(m_rect);

m_list.SetColumnWidth(CIndex, m_rect.Width()/3);
eg:
CRect m_rect;
m_list.GetClientRect(m_rect);
m_list.SetColumnWidth(0, m_rect.Width()/4);


设置颜色:

m_list.SetBkColor((DWORD)RGB(255,255,255));   //ListCtrl背景色(白色)
m_list.SetTextBkColor((DWORD)RGB(0,0,0));      //每一行的背景色(黑色)
m_list.SetTextColor((DWORD)RGB(255,0,0));      //每一行的文字颜色(红色)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息