1、插入list control控件
2、为这个控件添加关联变量
CListCtrl m_list
3、添加列
int InsertColumn( int nCol, const LVCOLUMN* pColumn );
int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );
nCol 列序号
pColumn 列信息结构LVCOLUMN
lpszColumnHeading 列名称
nFormat 列显示位置,默认居左
nWidth 列宽度,默认不设置
nSubItem 和这个列相关子项序号,默认没有子项相关
示例:
m_list.InsertColumn(0,"column1");
m_list.InsertColumn(0,"column1",LVCFMT_CENTER,200,-1 );
4、设置列宽度
void GetClientRect( LPRECT lpRect )//得到客户区域
BOOL SetColumnWidth( int nCol, int cx );
示例:
CRect rect4;
m_list.GetClientRect(rect4);
m_list.SetColumnWidth(0,rect4.Width()/4);
5、设置显示样式
LVS_EX_FULLROWSELECT,当一个项目行选择时,它和它的所有子项都将高亮显示
LVS_EX_GRIDLINES,显示项和它子项周围边线
LVS_EX_HEADERDRAGDROP,头可以被拖动
LVS_EX_ONECLICKACTIVATE,当用户单击控件时,发送一个 LVN_ITEMACTIVATE通造消息给父窗口,它也必需启用hot tracking-当用户鼠标移动到一个项目时,高亮显示但不选择。
LVS_EX_TWOCLICKACTIVATE,当用户双击控件时,发送一个 LVN_ITEMACTIVATE通造消息给父窗口
LVS_EX_UNDERLINEHOT,hot项显示下划线。
LVS_EX_UNDERLINECOLD,hot项不显示下划线。
LVS_EX_TRACKSELECT,Enables hover selection in a list view control
DWORD wExStyle
=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;
m_list.SetExtendedStyle(dwExStyle);
6、插入数据
int InsertItem( int nItem, LPCTSTR lpszItem );
nItem,项序号
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
nItem,那一项被设置
nSubItem,子项序号
示例:
m_list.InsertItem(0,"大海"); //插入第一个数据,即第0条数据。先插入,然后在修改其他的信息。
m_list.SetItemText(0,1,"mp3");//修改第0条数据的其他信息。
m_list.SetItemText(0,2,"4:20");
m_list.SetItemText(0,3,"c://");
7、添加事件响应函数
LVS_EX_ONECLICKACTIVATE,当用户单击控件时,发送一个 LVN_ITEMACTIVATE通造消息给父窗口
消息处理函数声明
afx_msg void OnITEMACTIVATE(NMHDR* pNMHDR, LRESULT* pResult);
消息处理函数映射
ON_NOTIFY(LVN_ITEMACTIVATE, IDC_LIST1, OnITEMACTIVATE)
消息处理函数实现
void CViewDlg::OnITEMACTIVATE(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
char strtemp[100];
memset(strtemp,0,sizeof(strtemp));
sprintf(strtemp,"row%d,col%d",pNMListView->iItem, pNMListView->iSubItem);
AfxMessageBox(strtemp);
}
*pResult = 0;
}
4.删除所有数据
m_list.DeleteAllItems();