本人做了个切分窗口(两个),每个窗口对应一个视图(视图A和B),每个视图都重载改写了打印方面的内容。当程序启动时,点击菜单中的打印预览,它自动关联到视图A的函数,我只有当用鼠标点击视图B之后,再点击打印预览,才关联到B中的函数。现在我想程序启动时自动关联到视图B,不知如何实现?

解决方案 »

  1.   

    打印命令被自动转发到当前活动视图,所以LZ只在要在程序启动后将B视图激活即可。可以加在框架的OnCreateClient 函数里,在CSplitterWnd创建切分视图成功后,调用CSplitterWnd的GetPane,来得到B视图的指针。并激活它。BOOL CChildFrame::OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext )
    {
        if(!m_wndSplitter.Create(this, 2, 1, CSize(10,10), pContext))
              return FALSE;    CView* pViewB = (CView*)m_wndSplitter.GetPane(1, 0);
        ASSERT_VALID(pViewB);
        ASSERT_KINDOF(CView, pViewB);
        pViewB->SetFocus();
        return TRUE;
    }