将窗口分为左右两个窗格,左面窗格对应的类是CTypeView,右面窗格对应的类是CDisplayView.想在双击左面窗格时,调用右面窗格类(CDisplayView)的成员函数,下面是在双击事件中的两行代码,以获得CDisplayView的指针,但是程序每当执行到
    CDisplayView* pDisplayView=(CDisplayView*)MainFrame1->m_wndSplitter.GetPane(0,1);就出错,请高手指点为什么。void CTypeView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
    CMainFrame* MainFrame1=(CMainFrame*)this->GetParent()->GetParent();
    CDisplayView* pDisplayView=(CDisplayView*)MainFrame1->m_wndSplitter.GetPane(0,1);

解决方案 »

  1.   

    你那个MainFrame1用这个获取试试。CMainFrame* pFrame =(CMainFrame*)AfxGetApp()->m_pMainWnd;还有,你的窗口分割是否静态分割?
      

  2.   

    soso82(海阔天空) ,用你的方法后,程序通过了,多谢了。我想继续请教一下,为什么这样可以,那样就不可以呢。
      

  3.   

    分割了后的view的getparent()并不一定返回的就是m_wndSplitter,应该是m_wndSplitter下的一个child框架,这样你两次调用getparent()返回的就只是m_wndSplitter了,而不是cmainframe。
    纯属猜测,也许可以试试加三个getparent()的结果
    哈哈
      

  4.   

    多谢 yuxi81(无名) ,你说的很对,因为按照你说的,程序通过了。