MDI程序
MiniDraw只有一个About对话框,这回要把它变成一个MDI程序,借助于文档视图的威力,并不需要花很大的力气。
MDI由4个类组成:
主框架类,由CMDIFrameWnd派生而来,表示程序的MDI父窗口。
子框架类,由CMDIChildWnd派生而来,表示程序的MDI子窗口。
视图类,由CView派生而来,表示一个文档视图,内嵌于子窗口。
文档类,由CDocument派生而来,表示一份“文档”,一份“文档”可以由多个视图表现。
现在创建这些类,全部通过新建头文件和源文件生成,下面它们的代码:
MainFrm.h
#ifndef LINZHENQUN_MAINFMR_H_
#define LINZHENQUN_MAINFMR_H_
class CMainFrm: public CMDIFrameWnd
{
DECLARE_DYNAMIC(CMainFrm)
public:
CMainFrm();
};
#endif //LINZHENQUN_MAINFMR_H_
MainFrm.cpp
#include<afxwin.h>
#include "MainFrm.h"
IMPLEMENT_DYNAMIC(CMainFrm, CMDIFrameWnd)
CMainFrm::CMainFrm()
{
}
DrawChildFrm.h
#ifndef LINZHENQUN_DRAWCHILDFRM_H_
#define LINZHENQUN_DRAWCHILDFRM_H_
class CDrawChildFrm: public CMDIChildWnd
{
DECLARE_DYNCREATE(CDrawChildFrm)
public:
CDrawChildFrm();
};
#endif //LINZHENQUN_DRAWCHILDFRM_H_
DrawChildFrm.cpp
#include <afxwin.h>
#include "DrawChildFrm.h"
IMPLEMENT_DYNCREATE(CDrawChildFrm, CMDIChildWnd)
CDrawChildFrm::CDrawChildFrm()
{
}
DrawView.h
#ifndef LINZHENQUN_DRAWVIEW_H_
#define LINZHENQUN_DRAWVIEW_H_
class CDrawView: public CView
{
DECLARE_DYNCREATE(CDrawView)
public:
CDrawView();
protected:
virtual void OnDraw(CDC* pDC);
};
#endif //LINZHENQUN_DRAWVIEW_H_
DrawView.cpp
#include <afxwin.h>
#include "DrawView.h"
IMPLEMENT_DYNCREATE(CDrawView, CView)