VC++ 从 CWnd中 派生特任意类,如何用在SDI的拆分窗口中

VC 从 CWnd中 派生特任意类,如何用在SDI的拆分窗口中
    class CMyXXX : public CWnd
只要添加以下两个动态创建的代码就可以被 m_Splitter创建.
.H文件中  
    DECLARE_DYNCREATE(CMyXXX);  
.CPP文件中
    IMPLEMENT_DYNCREATE(CMyXXX, CWnd)
如:
MyXXX.h
    class CMyXXX : public CWnd
    {
    public:
        DECLARE_DYNCREATE(CMyXXX);
    };
MyXXX.CPP
    #include "stdafx.h"
    #include "ChildView.h"
    IMPLEMENT_DYNCREATE(CMyXXX, CWnd)

在一个非文档/视图支持的框架中使用Splitter拆分窗口
    1.在CMainFrame中添加一个CSplitter的变量 m_wndSplitter;
    2.覆盖CMainFrame 的 OnCreateClient 函数

            BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
            {
                // 添加创建静态拆分窗口
                if (!m_wndSplitter.CreateStatic(this, 1, 2))
                    return FALSE;

                            // 创建摇摇拆分窗口.
                if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyXXX), CSize(100, 100), pContext) ||
                    !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyXXX), CSize(100, 100), pContext))
                {
                    m_wndSplitter.DestroyWindow();
                    return FALSE;
                }
                // 重新设置 第0列的 大小
                m_wndSplitter.SetColumnInfo(0,190,100);
                m_wndSplitter.RecalcLayout();

                //注释掉原来的返回值.
                //return CFrameWnd::OnCreateClient(lpcs, pContext);
                return TRUE;
            }

转载于:https://www.cnblogs.com/fishseewater/archive/2011/01/12/1933990.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值