
List 控件是vc++下常用的控件,本文是vc 2013 下使用 list控件的教程。如何加载控件,双击如何获取鼠标点击的内容。
打开兑换框,把List control 拖动到对话框上,并把控件ID命名。
打开类向导
给list control增加对应的控件变量
在对话框的初始化函数OnInitDialog()里面,初始化list control控件,设置表头,插入数据。
具体代码如下:
LONG lStyle;
lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style
lStyle &= ~LVS_TYPEMASK; //清除显示方式位
lStyle |= LVS_REPORT; //设置style
SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style
DWORD dwStyle = m_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
//dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
m_list.SetExtendedStyle(dwStyle); //设置扩展风格
m_list.InsertColumn(0, "ID", LVCFMT_LEFT, 40);//插入列
m_list.InsertColumn(1, "NAME", LVCFMT_LEFT, 50);
int nRow = m_list.InsertItem(0, "1");//插入行
m_list.SetItemText(nRow, 1, "张三");//设置数据
初始化后,程序演示结果如下。
接着 演示如何点击获取list控件内数据的示例。
先增加双击控件的消息映射函数。
消息映射函数中增加如下代码:
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->iItem != -1)
{
CString strtemp;
strtemp.Format("单击的是第%d行第%d列",pNMListView->iItem, pNMListView->iSubItem);
CString temp1 = m_list.GetItemText(pNMListView->iItem, pNMListView->iSubItem);
AfxMessageBox(strtemp + ", " + temp1);
}
最终效果如下图:
