MFC CListCtrl不响应LVN_GETDISPINFO消息
来源:互联网 发布:小学生机器人编程 编辑:程序博客网 时间:2024/06/06 01:01
今天写程序给对话框加了个列表控件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*>(pNMHDR);// TODO: 在此添加控件通知处理程序代码int nItem = pDispInfo->item.iItem;int nSubItem = pDispInfo->item.iSubItem;if(nSubItem==0)pDispInfo->item.pszText = _T("111");*pResult = 0;}
本以为程序即将完美运行,然而并没有。调试发现,OnLvnGetDispinfoList1( ),根本就不会进入,这下坑大了。
无奈之下,在ModifyStyle之后加了个GetStyle( )看看有没有设置进去。
结果发现果然没有!
然后,因为控件是拖进去的,所以再试了一下,在控件属性那里把“Owner data”设置为TRUE。
竟然就可以了。
好吧,深呼吸,程序员是不怕坑的。总结一下:
在CListCtrl Create了之后再去设置LVS_OWNERDATA目测是没有用的,必须在Create的时候就把这个style写上。
0 0
- MFC CListCtrl不响应LVN_GETDISPINFO消息
- 响应LVN_GETDISPINFO消息中的结构LV_DISPINFO
- 请问在VC中CListCtrl的LVN_GETDISPINFO消息怎么发送?
- MFC ON_UPDATE_COMMAND_UI消息不响应
- MFC中的CListCtrl添加右键菜单消息响应实例分析
- 【VS开发】MFC CListCtrl列表控件的消息响应
- MFC CListCtrl 设置高度,MeasureItem函数不响应
- MFC CListCtrl相应checkbox消息
- mfc 关于不响应键盘消息的处理
- MFC为何不响应WM_CHAR消息的解释理解
- MFC为何不响应WM_CHAR消息的解释理解
- MFC消息响应机制
- MFC消息响应机制
- MFC消息响应机制
- MFC消息响应路线
- MFC消息响应机制
- mfc添加消息响应
- MFC消息响应
- 《C++ 笔记》 Part1 文件打开时的CString 转换为 char*
- codeforces 337A
- 关于大型网站技术演进的思考(八)--存储的瓶颈终篇(8)
- 自学ios之路(3)
- 使用ZooKeeper实现Redis订阅消息的排他式处理
- MFC CListCtrl不响应LVN_GETDISPINFO消息
- php curl
- 笔记 - Java 反射
- python类中的__call__、__init__、__getattr__、__setattr__、__setattr__详解
- 读《从〈机器猫〉看阶级斗争残酷的本质》
- 关于大型网站技术演进的思考(七)--存储的瓶颈(7)
- Android App整体架构设计的思考
- hdu2079 选课时间(题目已修改,注意读题)(多重背包)
- Sqlite中文乱码问题