2012-11-28 36 views
3

我已经实现了一个带有LVS_EX_CHECKBOXES | LVS_EX_INFOTIP风格的ListView控件。我注册了使用列表视图控件项目获取通知的函数。从Listview Control复选框获取通知代码

BEGIN_MESSAGE_MAP(Class, ParentClass) 
ON_NOTIFY(LVN_GETINFOTIP,IDC_LIST2,OnClickCheckBox) 
END_MESSAGE_MAP() 

我的问题是,什么通知代码会在您选择/取消选择在ListView控件的项目的复选框发送到父..

需要什么样的代码被写入到处理复选框选择在OnClickCheckBox()函数中?

请帮我

回答

2

您获得该项目改变的消息,你必须搞清楚,如果该复选框状态已经改变。

消息映射:

ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, &CMyListView::OnLvnItemchanged)

事件处理程序:

void CMyListView::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); 

    if(pNMLV->uNewState == 8192) // Item checked 
    { 
     ... 
    } 
    else if(pNMLV->uNewState == 4096) // Item unchecked 
    { 
     ... 
    } 

    *pResult = 0; 
} 
+0

非常感谢:)它很适合我! –