本帖最后由 specialmy 于 2011-01-30 16:52:28 编辑

解决方案 »

  1.   


    小弟是菜鸟,能不能再说详细一些?这个LVN_ITEMCHANGING具体怎么用?
      

  2.   

    你的OnItemchanged消息响应是怎么加的?
      

  3.   

    void CDialog1::OnRclickList11(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;    if(pNMListView->iItem == -1)
    {}     *pResult = 0;
    }
    试试。。
      

  4.   


    我就是在ClassWizard里对相应的ListCtrl控件添加了一个LVN_ITEMCHANGED消息,然后Add Function,然后Edit Code。
    这是我的代码:
    void CZMBaseDataDlg::OnItemchangedListZmBaseinfoOne(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    if(!(pNMListView->uOldState & LVIS_FOCUSED) && (pNMListView->uNewState & LVIS_FOCUSED))
    {
    int selectedIndex=m_ZmBaseOneList.GetSelectionMark();//获得行号
    CString str = m_ZmBaseOneList.GetItemText(selectedIndex, 1);//读取数据
                      //问题就在这里,此处提取的str总是ITEMCHANGED之前的数据,无法得到更改后的最新数据
    switch(selectedIndex)
    {
    case 2://H
    theApp.img_dx_H=(int)(atof(str));
    Invalidate();
    break;
    case 4://D
    theApp.img_dx_D=(int)(atof(str));
    Invalidate();
    break;
    case 5://d
    theApp.img_dx_d=(int)(atof(str));
    Invalidate();
    break;
    default:
    break;
    }
    }
    *pResult = 0;
    }