MFC视图窗口动态分割

简介: MFC视图窗口动态分割

一、定义CSplitterWnd类对象


二、 在重写CFrameWnd::OnCreateClient虚函数时


1、利用CSplitterWnd::Create函数,创建不规则框架窗口。


三、实例


1、创建桌面应用程序,导入头文件


2、添加类,实现动态创建机制


class CMyView :public CView {
       DECLARE_DYNCREATE(CMyView)
};
IMPLEMENT_DYNCREATE(CMyView,CView)


3、由于CMyview是抽象类,需重写OnDraw方法


类里声明虚函数


virtual void OnDraw(CDC* pDC);

重写该函数


void CMyView::OnDraw(CDC* pDC) {
       pDC->TextOut(100,100,"自己的视图窗口");
}

4、创建框架类


class CMyFrameWnd :public CFrameWnd {
};

5、创建应用程序类


class CMyWinApp :public CWinApp {
public:
       virtual BOOL InitInstance();
};
CMyWinApp theApp;
BOOL CMyWinApp::InitInstance()
{
    CMyFrameWnd* pFrame = new CMyFrameWnd;
    pFrame->Create(NULL, "切割窗口");
    m_pMainWnd = pFrame;
    pFrame->ShowWindow(SW_SHOW);
    pFrame->UpdateData();
    return TRUE;
}


6、在框架类定义CSplitterWnd,因为这里生命周期长


public:
    CSplitterWnd split1;//日型
    CSplitterWnd split2;//倒日型

7、重写CFrameWnd::OnCreateClient虚函数


现在框架类声明函数

virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext* pContext);

重写函数

BOOL CMyFrameWnd::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
    //创建结构体对象
    CCreateContext cct;
    //拿到CMyview的静态变量
    cct.m_pNewViewClass = RUNTIME_CLASS(CMyView);
    split1.Create(this, 2,2, CSize(100,100), &cct);
    //不用调用父类
    return TRUE;
}


8、运行效果:

0a2653c851af460fa595bd959398a8f1.png

目录
相关文章
|
6月前
Qt 布局管理之分割窗口
Qt 布局管理之分割窗口
87 0
|
API 图形学
Winform控件优化之自定义控件的本质【从圆角控件看自定义的本质,Region区域无法反锯齿的问题】
自定义控件的本质只有两点:重绘控件Region区域(圆角、多边形、图片等),这是整个控件的真实范围;重绘图形,在原有Region范围内,重绘不同的图形(圆角、多边形、图片等)作为背景......
574 0
Winform控件优化之自定义控件的本质【从圆角控件看自定义的本质,Region区域无法反锯齿的问题】
|
数据安全/隐私保护 Windows
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
884 0
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
|
5月前
|
C++ UED 开发者
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
78 0
|
6月前
MFC视图窗口动态分割
MFC视图窗口动态分割
56 2
|
6月前
MFC的视图窗口
MFC的视图窗口
37 0
|
6月前
MFC单文档视图架构
MFC单文档视图架构
58 0
|
6月前
MFC窗口创建机制
MFC窗口创建机制
33 0
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
232 0
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?