如何类似VC6界面的左侧Tree类中刷新主窗口的view类呢?谢谢

解决方案 »

  1.   

    调用文档类的 CDocument::UpdateAllViews或通过拆分窗口的函数 CSplitterWnd::GetPane 直接得到主窗口的view指针, Invalidate刷新之
      

  2.   

    //小弟初学vc,楼上说的我不太明白,请再写的明白些,谢谢。
    //我在主框架窗口中创建了"左边的列表"
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    //左侧窗口
    // CG: The following block was inserted by the 'Dialog Bar' component
    {
    m_wndWorkspace.SetBtnImageList (&m_ImageList);
    // Initialize dialog bar m_wndWorkspace
    if (!m_wndWorkspace.Create(this, CG_ID_VIEW_WORKSPACE,
    _T("数据管理"), CSize(220,200)))
    {
    TRACE0("Failed to create dialog bar m_wndWorkspace\n");
    return -1; // fail to create
    }
    // Add the views to the tab control.
    m_wndWorkspace.AddView(_T("列表1"), RUNTIME_CLASS(CTreeView1));
    m_wndWorkspace.AddView(_T("列表1"), RUNTIME_CLASS(CTreeView2));
    // Define the image list to use with the tab control
    m_TabImages.Create (IDB_IL_TAB, 16, 1, RGB(0,255,0));
    m_wndWorkspace.SetTabImageList(&m_TabImages);     // allow bar to be resized when floating
        m_wndWorkspace.SetBarStyle(m_wndWorkspace.GetBarStyle() |
        CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndWorkspace.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndWorkspace, AFX_IDW_DOCKBAR_LEFT);
    } return 0;
    }//想在CTreeView1中单击后右侧的CMyView(CView类)窗口的内容重绘或刷新
    void CTreeView1::OnClick(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
    // TODO: Add your control notification handler code here
    m_TreeCtrl = &GetTreeCtrl(); *pResult = 0;
    }
    //谢谢帮忙。
      

  3.   

    首先获得cview的指针(p),然后
    p->Invalidate();
      

  4.   

    CMyView一定有个全局的指针或者变量,假定为CMyView *m_pMyView;
    那么就m_pMyView->RedrawWindow()或者m_pMyView->Invalidate();