SDI多视图切换

SDI的多个视图切换, 主要是要让视图(CView)和文档(CDocument)和框架(CWinFrame)关联起来.
(1)视图和 CDocument关联,使用CDocument::AddView,
如果要解除关联,用CDocument::RemoveView
(2)视图和CWinFrame关联, 在视图Create的时候,用CWinFrame做父窗口
     注意: 由于SDI的CWinFrame只把消息发送给AFX_IDW_PANE_FIRST,
所以需要把当前窗口的ID设置成AFX_IDW_PANE_FIRST, 使用SetWindowLong(GWL_ID,AFX_IDW_PANE_FIRST);
也可以使用CWnd::SetDlgCtrlID函数.
(3)新产生的视图(new CxxxView),在程序退出的时候不需要显式delete, 它会自己delete
(4)另外一种关联的方法是在CWinFrame::CreateView中通过设置CCreateContext的m_pNewViewClass和m_pCurrentDoc来实现, 用这种方式,最佳的创建时机是在CWinFrame::OnCreateClient, 这里需要为每个视图指定一个不同的ID, 当然,最后要显示的时候,当前视图的ID必须是AFX_IDW_PANE_FIRST.

此外, 还可以用切分视图来包容多个视图. 用CSplitterWnd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值