1、点击选中某一行事件
CListCtrl:
OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
使用类向导 添加此消息.
或者 手动绑定:
声明:
afx_msg void OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult);
绑定消息:
在BEGIN...END_MESSAGE_MAP 之间添加
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &你的类名::OnNMDblclkList1)//IDC_LIST1 替换成你的控件ID
实现:
void 你的类名::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
MessageBox("ok");
*pResult = 0;
}
2、不能选中一整行
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
================================================================================
=========================以下是控件用法补充========================================
1.动态生成列表控件。
在资源页面里,点击列表控件,然后在需要放置列表的地方拖拉就可以生成一个列表,查看它的属性->样式,可以设置它的样式,例如图标,小图标,列表,报告,单个选择,自动排列,没有标签换行,编辑标签 等等。
这种方法是静态生成列表控件,程序运行时列表就已经生成了,如果我们需要动态生成列表控件,让列表在我需要他生成的时候才生成,就要用CListCtrl::Create函数。
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
其中参数dwStyle用来确定列表控制的风格;rect用来确定列表控制的大小和位置;pParentWnd用来确定列表控制的父窗口,通常是一个对话框;nID用来确定列表控制的标识。其中列表控制的风格可以是下列值的组合:
LVS_ALIGNLEFT 用来确定表项的大小图标以左对齐方式显示;
LVS_ALIGNTOP 用来确定表项的大小图标以顶对齐方式显示;
LVS_AUTOARRANGE 用来确定表项的大小图标以自动排列方式显示;
LVS_EDITLABELS 设置表项文本可以编辑,
父窗口必须设有LVN_ENDLABELEDIT风格;
LVS_ICON 用来确定大图标的显示方式;
LVS_LIST 用来确定列表方式显示;
LVS_NOCOLUMNHEADER 用来确定在详细资料方式时不显示列表头;
LVS_NOLABELWRAP 用来确定以单行方式显示图标的文本项;
LVS_NOSCROLL 用来屏蔽滚动条;
LVS_NOSORTHEADER 用来确定列表头不能用作按钮功能;
LVS_OWNERDRAWFIXED 在详细列表方式时允许自绘窗口;
LVS_REPORT 用来确定以详细资料即报告方式显示;
LVS_SHAREIMAGELISTS用来确定共享图像列表方式;
LVS_SHOWSELALWAYS 用来确定一直显示被选中表项方式;
LVS_SINGLESEL 用来确定在某一时刻只能有一项被选中;
LVS_SMALLICON 用来确定小图标显示方式;
LVS_SORTASCENDING 用来确定表项排序时是基于表项文本的升序方式;
LVS_SORTDESCENDING 用来确定表项排序时是基于表项文本的降序方式;
以上的风格其实就是静态生成列表控件时 “属性->样式” 标签里的内容。如果列表控件创建完之后我们需要修改他的样式,就可以用GetWindowLong来获取CListCtrl已有的样式,然后用SetWindowLong来修改样式。
2.设置扩展样式。
除了上面的哪些基本样式,CListctrl还有更多的扩展样式,如果我们要添加或删除扩展样式,就不是像基本样式那样用SetWindowLong了,CListctrl提供了一个函数CListCtrl::SetExtendedStyle,这个函数