MFC控件之CListCtrl

CListCtrl控件的使用及常用技巧
摘要由CSDN通过智能技术生成

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,这个函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值