我使用CListCtrl创建了MFC Visual Studio项目。我在CDialog类中添加了一些项目,例如:
int l_iItem = m_listCtrl.InsertItem(LVIF_TEXT|LVIF_STATE, counter, someString, 0, LVIS_SELECTED, 0, 0);
m_listCtrl.SetItemText( l_iItem, 1, blockHexChar );
m_listCtrl.SetItemText( l_iItem, 2, description);
这很好。
之后,我想编辑一个子项(通过双击事件)。作品也不错。
如果编辑完成(在CListCtrl类中),
OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult)
将被称为。看起来像这样
LV_DISPINFO *plvDispInfo = (LV_DISPINFO *)pNMHDR;
LV_ITEM *plvItem = &plvDispInfo->item;
if (plvItem->pszText != NULL)
{
bool res = SetItemText(plvItem->iItem, plvItem->iSubItem, plvItem->pszText);
}
我总是返回0,所以SetItemText失败了。
知道我在做什么错吗?
欢呼吧
最佳答案
您必须使用WM_USER+NNN
中的PostMessage
向自己发布用户定义的消息(OnEndLabelEdit
)。更改标签以响应该消息。
关于c++ - VisualStudio MFC CListCtrl SetItemText失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29795407/