我在CListCtrl中添加了CCheckBox,现在想选中某一行的Checkbox的同时,将该行的数据立刻添加到数据库中,取消选中时,将该行数据立刻从数据库中删除。这个功能需要在CListCtrl的那个事件中实现,如何判断我点击的时那一行对应的checkbox

解决方案 »

  1.   

    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    if(pNMListView->uOldState&0xF000)
    {
    //pNMListView->iItem是哪一项改变了
    }
      

  2.   

    void CTestForm::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
         NMITEMACTIVATE* pActivate = (NMITEMACTIVATE*)pNMHDR ;     LVHITTESTINFO oInfo ;
         oInfo.pt = pActivate->ptAction ;
         m_List.HitTest(&oInfo) ;     if(oInfo.flags == LVHT_ONITEMSTATEICON)
              AfxMessageBox("State") ;     *pResult = 0;
    }
    void CCBTestDlg::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
     LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
     
     // please insert code here...
         if(pLVKeyDow->wVKey == VK_SPACE)
              AfxMessageBox("State") ; *pResult = 0;
    }