博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

控件 在类之间的 传递

Posted on 2009-03-26 17:27  浪端之渡鸟  阅读(259)  评论(0编辑  收藏  举报

三种方法,拿项目中的代码来说明:

一:引用传递

二:指针传递

三:获得父窗口

对于三就不多说了,对于一二,看代码便知,引用:

 CGroupAdvance* dlg = new CGroupAdvance(m_OtherListCtr);
 dlg -> DoModal();
 delete dlg;

指针:

 CGroupAdvance* dlg = new CGroupAdvance(&m_OtherListCtr);
 dlg -> DoModal();
 delete dlg;

代码只有有或无&的区别,一个是指针,一个是引用,对应的构造函数也应该做相应变化,对于引用:

CListCtrl&  m_OtherList;//定义成引用,不能定义为CListCtrl  m_OtherList

CGroupAdvance::CGroupAdvance(CListCtrl& tmpListCtr,CWnd* pParent /*=NULL*/)
 : CDialog(CGroupAdvance::IDD, pParent)
 ,m_OtherList(tmpListCtr)//必须在这里初始化
{
}

 

对于指针:

CListCtrl*  m_pOtherList;

CGroupAdvance::CGroupAdvance(CListCtrl* tmpListCtr,CWnd* pParent /*=NULL*/)
 : CDialog(CGroupAdvance::IDD, pParent)
{

m_pOtherList  =  tmpListCtr;

}

 

 优缺点:引用不用判断可用,指针需要判断