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

目录
相关文章
|
3月前
Qt 布局管理之分割窗口
Qt 布局管理之分割窗口
35 0
|
数据安全/隐私保护 Windows
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
715 0
QT应用编程: QGraphicsView+QGraphicsTextItem动态编辑文本
|
2月前
MFC的视图窗口
MFC的视图窗口
11 0
|
9月前
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
141 0
ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
MFC视图窗口动态分割
MFC视图窗口动态分割
98 0
MFC视图窗口动态分割
文字处理技术:视图坐标都是在父视图的相对坐标
文字处理技术:视图坐标都是在父视图的相对坐标
67 0
|
调度 Windows C#
理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图)
原文 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) UWP 应用多是一个窗口完成所有业务的,事实上我也推荐使用这种单一窗口的方式。不过,总有一些特别的情况下我们需要用到不止一个窗口,那么 UWP 中如何使用多窗口呢? 本文内容 为什么 UWP 需要多窗口? UWP 视图的概念 UWP 多窗口 管理多个 UWP 视图 参考资料 为什么 UWP 需要多窗口? 多窗口在传统 Win32 的开发当中是司空见惯的事儿了,不过我个人非常不喜欢,因为 Windows 系统上的多窗口太多坑。
1590 0
|
Android开发 UED
独立于视图的加载控件--让视图更干净
项目源码请参考https://github.com/CarryGanLove/LoadingHelper 背景和问题 在app后sdk开发过程中,如果有遇到延时任务的时候,往往需要添加一个通用的loading控件用来展示给用户,一来为了提示用户当前有耗时的操作,二来降低用户的等待感提升用户体验。
957 0

热门文章

最新文章