MFC单文档应用程序基础训练——文本输出绘图等.doc
文本预览下载声明
MFC单文档
基础训练——文本输出、绘图等
平台为:VS2010
一个简单的单文档应用程序
文件-新建项目-MFC应用程序 ,出现窗口按“下一步”,出现下面窗口 选择单文档
点 调试—运行,最后运行界面为下图:
一个简单的单文档应用程序向导自动建立五个类:
向导自动建立的类
相应源文件
其他源文件
相应头文件
其他头文件
CAboutDlg
StdAfx.cpp
StdAfx.h
CXxxApp
Xxx.cpp
Xxx.rc
Xxx.h
Resource.h
CXxxView
XxxView.cpp
XxxView.h
CXxxDoc
XxxDoc.cpp
XxxDoc.h
CMainFrame
MainFrame.cpp
MainFrame.h
视(View)显示用户程序的数据及处理用户与文档的交互文档对象永久存储(磁盘文件)
视(View)
显示用户程序的数据及处理用户与文档的交互
文档对象
永久存储
(磁盘文件)
MainFrame
框架窗口
每个类的主要函数:
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)//创建窗体的工具栏,状态栏等
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT cs)
BOOL CXxxApp::InitInstance()
void CXxxApp::OnAppAbout()
BOOL CXxxDoc::OnNewDocument()//初始化文档字符数据、字体信息等
void CXxxDoc::Serialize(CArchive ar)
BOOL CXxxView::PreCreateWindow(CREATESTRUCT cs)
void CXxxView::OnDraw(CDC* pDC)
BOOL CXxxView::OnPreparePrinting(CPrintInfo* pInfo)//弹出打印对话框
void CXxxView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
void CXxxView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
CXxxDoc* CXxxView::GetDocument() // non-debug version is inline
创建单文档应用程序的一般步骤:
利用AppWizard创建应用程序框架
在文档内中声明保存文档数据所需要数据对象
完成文档类的OnNewDocument函数,初始化新文档
完成文档类的Serialize函数,保持和加载文档数据
完成视类的OnInitialUpdate函数,初始化显示
完成视类的OnDraw函数,显示当前文档内容
在视类中加入可以使用户编辑文档数据所需的代码
2.简单文本和图形输出
建立一个简单的单文档应用程序SimpleTextPicture,通过修改OnDraw函数在视(View)中输出信息或画图。
找到函数OnDraw(CDC* /*pDC*/),改为OnDraw(CDC* pDC);
OnDraw函数在SimpleTextPicture.cpp文件中,专门用于输出信息或画图。负责视图显示功能(包括打印、显示、预览等)
例2.1 显示正方形和文本
void CSimpleTextPictureView::OnDraw(CDC* pDC)
{
CSimpleTextPictureDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC-TextOut(10,120,_T(Hello World!));
pDC-Rectangle(20,20,100,100);
}
在AppWizard生成的OnDraw函数中加入以黑体字给出的两行代码,运行程序,显示如下:
例2.2显示彩色图形和文本
void CSimpleTextPictureView::OnDraw(CDC* pDC)
{
CSimpleTextPictureDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen pen;
CBrush brush;
pen.CreatePen(PS_SOL
显示全部