一个ListView,当选中某一条右键点击后出现一个菜单,其中右个属性项,选择属性后要把ListView的当前选择条目的信息显示出来,该怎么传?

解决方案 »

  1.   

    CListCtrl& ctlList = GetListCtrl();
    然后用ClistCtrl类的成员函数来获取信息
      

  2.   

    将ListView中对应的ListCtrl取出,获取当前选择的条目的信息,传递到属性对话框中显示就可以了。
    CListCtrl listCtrl = pView->GetListCtrl();
      

  3.   

    NM_RCLICK
    LVM_GETITEM
    LVM_GETITEMTEXT
    LVM_GETNEXTITEM
      

  4.   

    void CXXXXDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    // TODO: Add your control notification handler code here
    MessageBox(m_l.GetItemText(pNMListView->iItem,pNMListView->iSubItem));
    *pResult = 0;
    }
      

  5.   

    //得到当前项的序号
    {
    CListCtrl &lc=GetListCtrl();
    POSITION pos = lc.GetFirstSelectedItemPosition( );
    int nItem = -1;
    while(pos!=NULL)
    nItem = lc.GetNextSelectedItem(pos);
    return nItem;
    }
    然后根据当前项的序号就可以访问到所有需要知道的信息
      

  6.   

    CListCtrl listCtrl = pView->GetListCtrl();  POSITION pos= listCtrl.GetFirstSelectedItemPosition();
    while(pos != NULL)
    {
    int iSel= listCtrl.GetNextSelectedItem(pos);
    if(iSel < 0)
    return;
    //对数据进行处理
    // listCtrl.GetItemText(iSel,0);
    // listCtrl.GetItemText(iSel,1);
    // listCtrl.GetItemText(iSel,2);
    // listCtrl.GetItemText(iSel,3);
    }
      

  7.   

    大家没明白我的意思,我是想这样,在属性对话框里通过COPY构造函数得到ListView中的选择条信息,不能在ListView里来个m_ProperPage.SetText()传进去,因为这个属性页会有很多实例。取ListView中选择的条目数据很容易,只是我不知道怎么在属性对话框构造时直接就已经传进来数据。大家说说该怎么做呢?
      

  8.   

    你完全可以在对话框的初始函数中,通过获取当前ListView的指针来取得选择的条目数据。
    在属性页的初始化函数中,这样写:
    CMainFrame *pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
    C**ListView* pView = (C**ListView*)(pFrame->GetActiveView());
    pView就是你当前视图的指针了。
    然后就可以用pView获取你想要的信息了。