传递问题……比较急…… 一个ListView,当选中某一条右键点击后出现一个菜单,其中右个属性项,选择属性后要把ListView的当前选择条目的信息显示出来,该怎么传? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CListCtrl& ctlList = GetListCtrl();然后用ClistCtrl类的成员函数来获取信息 将ListView中对应的ListCtrl取出,获取当前选择的条目的信息,传递到属性对话框中显示就可以了。CListCtrl listCtrl = pView->GetListCtrl(); NM_RCLICKLVM_GETITEMLVM_GETITEMTEXTLVM_GETNEXTITEM 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;} //得到当前项的序号{ CListCtrl &lc=GetListCtrl(); POSITION pos = lc.GetFirstSelectedItemPosition( ); int nItem = -1; while(pos!=NULL) nItem = lc.GetNextSelectedItem(pos); return nItem;}然后根据当前项的序号就可以访问到所有需要知道的信息 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); } 大家没明白我的意思,我是想这样,在属性对话框里通过COPY构造函数得到ListView中的选择条信息,不能在ListView里来个m_ProperPage.SetText()传进去,因为这个属性页会有很多实例。取ListView中选择的条目数据很容易,只是我不知道怎么在属性对话框构造时直接就已经传进来数据。大家说说该怎么做呢? 你完全可以在对话框的初始函数中,通过获取当前ListView的指针来取得选择的条目数据。在属性页的初始化函数中,这样写:CMainFrame *pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);C**ListView* pView = (C**ListView*)(pFrame->GetActiveView());pView就是你当前视图的指针了。然后就可以用pView获取你想要的信息了。 求解释 建立缓冲区。 程序出错 Win api这个程序窗口函数哪里出了问题? Picture控件的事件 可以缩放的异形窗口 如何通过一台机子的IP 的到该机子的系统时间?? 偶没有比BitBlt更快的复制位图的方法? 关于用vc++生成word自动化文档的一些问题 SetclassLong 请问高手关于变量类型的转换的问题 各位网友,大家好,小弟在此请教一个小问题,参与者均有分...... 为什么我的计数器不能捕捉到WM_TIMER消息?
然后用ClistCtrl类的成员函数来获取信息
CListCtrl listCtrl = pView->GetListCtrl();
LVM_GETITEM
LVM_GETITEMTEXT
LVM_GETNEXTITEM
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
MessageBox(m_l.GetItemText(pNMListView->iItem,pNMListView->iSubItem));
*pResult = 0;
}
{
CListCtrl &lc=GetListCtrl();
POSITION pos = lc.GetFirstSelectedItemPosition( );
int nItem = -1;
while(pos!=NULL)
nItem = lc.GetNextSelectedItem(pos);
return nItem;
}
然后根据当前项的序号就可以访问到所有需要知道的信息
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);
}
在属性页的初始化函数中,这样写:
CMainFrame *pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
C**ListView* pView = (C**ListView*)(pFrame->GetActiveView());
pView就是你当前视图的指针了。
然后就可以用pView获取你想要的信息了。