Visual c++ 处理CListCtrl的鼠标单击时出现问题

Visual c++ 处理CListCtrl的鼠标单击时出现问题,visual-c++,mfc,Visual C++,Mfc,我有一个带有复选框的listctrl(LVS_EX_复选框)。它是一个单列列表控件。我的问题是,当我点击复选框时,特定项目被选中/取消选中。但是当我点击项目文本时,相应的复选框没有被选中/取消选中。如何处理这两种情况。要在用户单击项目文本时检查项目,您必须处理NM_CLICK消息,该消息在用户单击项目时发送 大致如下: CYourListCtrl::OnNMClick(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActi

我有一个带有复选框的listctrl(LVS_EX_复选框)。它是一个单列列表控件。我的问题是,当我点击复选框时,特定项目被选中/取消选中。但是当我点击项目文本时,相应的复选框没有被选中/取消选中。如何处理这两种情况。

要在用户单击项目文本时检查项目,您必须处理NM_CLICK消息,该消息在用户单击项目时发送

大致如下:

CYourListCtrl::OnNMClick(NMHDR* pNMHDR, LRESULT* pResult)
{

LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

int nItemIndex = pNMItemActivate->iItem;

BOOL bCurrentCheckState = GetCheck(nItemIndex);

SetCheck(nItemIndex, !bCurrentCheckState);

*pResult = 0;

}
CYourListCtrl::OnNMClick(NMHDR*pNMHDR,LRESULT*pResult)
{
LPNMITEMACTIVATE pNMItemActivate=重新解释铸件(pNMHDR);
int nItemIndex=pNMItemActivate->iItem;
BOOL bCurrentCheckState=GetCheck(nItemIndex);
SetCheck(nItemIndex,!bCurrentCheckState);
*预设值=0;
}
我写这篇文章时没有进行测试,因此您必须确保它不会与单击复选框的处理程序冲突