如果获取类的指针

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:35:42
IMPLEMENT_DYNCREATE(CSplitterView, CView)

CSplitterView::CSplitterView()
{
}

CSplitterView::~CSplitterView()
{
}

BEGIN_MESSAGE_MAP(CSplitterView, CView)
//{{AFX_MSG_MAP(CSplitterView)
ON_WM_CREATE()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSplitterView drawing

void CSplitterView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CSplitterView diagnostics

#ifdef _DEBUG
void CSplitterView::AssertValid() const
{
CView::AssertValid();
}

void CSplitterView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG

//////////////////////////////////////////////////////

你现在在RightView里头new是不对的,因为RightView看不到LeftView
所以只能在RightView和LeftView的上一级单位里new,一new完就分别传给RightView和LeftView
这就不会错了。
假设LV和RV是PV
PV有一个member是RV rv; LV lv;(或者指针)
RV类增加一个member LV* plv;
===>改一下,RV类增加一个member PV* ppv;

PV里,rv.ppv=this
在RV的new之后就可以ppv->lv->m_SlipView=XXXXX

m_pSplitterView = this;

m_wndSplitter 是 CSplitterView 的子控件
然后, CListCtrlView1 , CEditCtrlView1 又是 m_wndSplitter 管理的2个子控件。

你到底要得到那个指针呢?m_pSplitterView想保存在哪儿?

你 定义的是 CSplitterView* m_pSplitterView;
放在 CSplitterView::OnCreate() 里 m_pSplitterView = this;

CSplitterView* m_pSplitterView; 这个定义要放在外部

GetActivePane的两个参数,第一个表示行,第二个表示列,在使用GetActivePane想获得你要View时,主要看你的View是如何排列的了,写好行列值就可以了,这个行列值是左上角为0,0,向右行加1,向左列加1,你试试就知道了。