MFC CListCtrl不响应LVN_GETDISPINFO消息

本文介绍了在MFC中使用CListCtrl控件时遇到的问题,即控件不响应LVN_GETDISPINFO消息。作者通过实验发现,仅在Create时设置LVS_OWNERDATA风格才能使控件正常工作,而在OnInitDialog中修改风格无效。解决方法是通过控件属性设置“Owner data”为TRUE,或者在创建控件时直接包含所需风格。
摘要由CSDN通过智能技术生成

今天写程序给对话框加了个列表控件CListCtrl【拖进去的控件】,用来显示类中一个Vector的内容。由于这个控件之前就用过很多遍了,已经知道如果列表想要响应LVC_GETDISPINFO消息,必须使能LVS_OWNERDATA风格。所以在OnInitDialog( )里面写了如下代码:

	m_listCtrl.ModifyStyle(0, LVS_OWNERDATA|LVS_REPORT|LVS_SINGLESEL);
	m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle()|LVS_EX_FULLROWSELECT);
	m_listCtrl.InsertColumn(0, _T("ID"), 0, 150);
	m_listCtrl.InsertColumn(1, _T("Data"), 0, 300);

然后绑定消息响应函数:

void CListCtrlTestDlg::OnLvnGetdispinfoList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHD
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值