16,472
社区成员
发帖
与我相关
我的任务
分享
h文件
#pragma once
#ifdef _WIN32_WCE
#error "Windows CE 不支持 CMDIChildWnd。"
#endif
// 带有拆分器的 CxChildFrameX 框架
class CxViewA : public CView
{
DECLARE_DYNCREATE(CxViewA)
protected:
CxViewA(); // 动态创建所使用的受保护的构造函数
virtual ~CxViewA();
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
DECLARE_MESSAGE_MAP()
};
class CxViewB : public CView
{
DECLARE_DYNCREATE(CxViewB)
protected:
CxViewB(); // 动态创建所使用的受保护的构造函数
virtual ~CxViewB();
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
DECLARE_MESSAGE_MAP()
};
class CxChildFrameX : public CMDIChildWnd
{
DECLARE_DYNCREATE(CxChildFrameX)
public:
CxChildFrameX(); // 动态创建所使用的受保护的构造函数
virtual ~CxChildFrameX();
protected:
CSplitterWnd m_wndSplitter;
protected:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
DECLARE_MESSAGE_MAP()
};
cpp文件
// xChildFrameX.cpp : 实现文件
//
#include "stdafx.h"
#include "OpenCV_MFC.h"
#include "xChildFrameX.h"
// CxViewA
IMPLEMENT_DYNCREATE(CxViewA, CView)
CxViewA::CxViewA()
{
}
CxViewA::~CxViewA()
{
}
BEGIN_MESSAGE_MAP(CxViewA, CView)
END_MESSAGE_MAP()
// CxViewA 绘图
void CxViewA::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CRect rx;
GetClientRect(&rx);
CString cs="This is ViewA";
CSize sz=pDC->GetTextExtent(cs);
pDC->TextOut((rx.Width()-sz.cx)/2,(rx.Height()-sz.cy)/2,cs);
}
// CxViewA 诊断
#ifdef _DEBUG
void CxViewA::AssertValid() const
{
CView::AssertValid();
}
#ifndef _WIN32_WCE
void CxViewA::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif
// CxViewB
IMPLEMENT_DYNCREATE(CxViewB, CView)
CxViewB::CxViewB()
{
}
CxViewB::~CxViewB()
{
}
BEGIN_MESSAGE_MAP(CxViewB, CView)
END_MESSAGE_MAP()
// CxViewB 绘图
void CxViewB::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CRect rx;
GetClientRect(&rx);
CString cs="This is ViewB";
CSize sz=pDC->GetTextExtent(cs);
pDC->TextOut((rx.Width()-sz.cx)/2,(rx.Height()-sz.cy)/2,cs);
}
// CxViewB 诊断
#ifdef _DEBUG
void CxViewB::AssertValid() const
{
CView::AssertValid();
}
#ifndef _WIN32_WCE
void CxViewB::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif //_DEBUG
// CxViewB 消息处理程序
// CxChildFrameX
IMPLEMENT_DYNCREATE(CxChildFrameX, CMDIChildWnd)
CxChildFrameX::CxChildFrameX()
{
}
CxChildFrameX::~CxChildFrameX()
{
}
BOOL CxChildFrameX::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
//return m_wndSplitter.Create(this,
// 2, 2, // TODO: 调整行数和列数
// CSize(10, 10), // TODO: 调整最小窗格大小
// pContext);
m_wndSplitter.CreateStatic(this,2,1);
m_wndSplitter.SetRowInfo(0,300,100);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CxViewA),CSize(0,200),pContext);
m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CxViewB),CSize(0,0),pContext);
return TRUE;
}
BEGIN_MESSAGE_MAP(CxChildFrameX, CMDIChildWnd)
END_MESSAGE_MAP()
// CxChildFrameX 消息处理程序