轻松学VisualC之单文档应用程序
- 格式:pptx
- 大小:742.91 KB
- 文档页数:10
VS2010/MFC编程入门之前言分类标签: 编程入门VC++VS2010MFC鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。
鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。
本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
VC++简介VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C ++是语言,而VC++是用C++语言编写程序的工具平台。
VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。
Visual Studio包含了VB、VC++、C#等编译环境。
当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。
但自微软2002年发布Visual 以来,微软建立了在. NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。
VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6. 0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。
建立一个简单地画直线的MFC单文档对话框并实现在对话框里面画直线在MFC单文档应用程序中创建一个对话框窗口并实现在对话框内画直线的过程如下:1.创建MFC单文档应用程序- 在 Visual Studio 中创建一个新的 MFC 单文档应用程序项目。
选择"对话框"作为应用程序类型。
-设置应用程序名称和位置,然后单击"完成"创建项目。
2.设置对话框窗口- 在对话框中添加一个自定义控件。
选择"工具箱"中的"Picture Control"控件,拖动到对话框上。
- 选中图片控件,右键单击并选择"属性"。
更改 ID 为IDC_DRAW_AREA,并将 Border 属性设置为 None。
-拖动控件大小以适应窗口布局,并保存对话框。
3.修改对话框类- 打开对话框类的头文件(例如 CMyDialog.h),添加一个标志变量来跟踪鼠标左键按下的状态:```cppBOOL m_bDrawing;```- 在 CMyDialog.cpp 文件中添加以下消息映射函数:```cppBEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)ON_WM_LBUTTONDOWNON_WM_LBUTTONUPON_WM_MOUSEMOVEEND_MESSAGE_MAP```-在头文件中声明回调函数```cppafx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_msg void OnLButtonUp(UINT nFlags, CPoint point);afx_msg void OnMouseMove(UINT nFlags, CPoint point);```4.实现画线功能- 在 CMyDialog.cpp 文件中实现 OnLButtonDown 函数,该函数用于开始画线:```cppvoid CMyDialog::OnLButtonDown(UINT nFlags, CPoint point)m_bDrawing = TRUE;CClientDC dc(this);dc.MoveTo(point);}```- 实现 OnLButtonUp 函数,该函数用于结束画线:```cppvoid CMyDialog::OnLButtonUp(UINT nFlags, CPoint point) m_bDrawing = FALSE;}```- 实现 OnMouseMove 函数,该函数用于动态绘制线段:```cppvoid CMyDialog::OnMouseMove(UINT nFlags, CPoint point) if (m_bDrawing)CClientDC dc(this);dc.LineTo(point);}}5.更新对话框消息映射```cppafx_msg void OnPaint(;afx_msg BOOL OnEraseBkgnd(CDC* pDC);```6重写重绘和擦除背景函数- 在 CMyDialog.cpp 文件中添加以下代码来重绘对话框:```cppvoid CMyDialog::OnPaintCPaintDC dc(this); // 用于在对话框上绘制//TODO:在此处添加您的消息处理程序代码}```-添加以下代码来防止对话框背景擦除:```cppBOOL CMyDialog::OnEraseBkgnd(CDC* pDC)return TRUE;}7.运行程序-单击“开始调试”(F5)以运行应用程序。
使用Visual C++ .NET 使用GDI+的一般方法GDI(Graphics Device Interface)是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。
GDI+是GDI的一个新版本,步进在GDI的基础上添加了许多新的特性,而且对原有的GDI进行了优化。
下面就基于单文档的应用程序为例,说明使用GDI+的一般过程和方法。
说明:(1)范例程序目标:创建一个单文档应用程序,使用GDI+在其中绘制一个100*60的矩形,并对其进行着色。
(2)程序开发环境:Visual Studio 2012 (3)为了标识程序中添加的代码,添加的代码都用如下格式标出。
//------------此处为添加的代码---------------------------------------……….添加的代码//---------------------------------------------------程序创建步骤如下所示。
1.创建单文档的MFC程序1.1创建工程在File->New->Project中选择MFC Application,并命名为CEx_GDIPlus,如下图所示。
1.2工程属性配置在MFC Application的属性配置中选择单文档Single document,如下图所示。
其余属性保持默认即可。
2.在应用程序中配置GDI+2.1添加头文件gdiplus.h将头文件gdiplus.ht添加到程序中的stdafx.h文件中,如下图所示。
//------------此处为添加的代码---------------------------------------#include<GdiPlus.h>//引入GDI+头文件//------------------------------------------------------------------2.2添加类库gdiplus.lib类库gdiplus.lib的添加有两种方法。
Visual Studio C++ 2010-MFC编程入门之前言鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。
鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。
本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
VC++简介VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台。
VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。
Visual Studio包含了VB、VC++、C#等编译环境。
当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。
但自微软2002年发布Visual 以来,微软建立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。
VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6.0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。
【例Ex_Array】读取文档数据并显示①用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Array。
为CEx_ArrayDoc类添加CStringArray类型的成员变量m_strContents,用来读取文档内容。
②在CEx_ArrayDoc::Serialize函数中添加读取文档内容的代码:void CEx_ArrayDoc::Serialize(CArchive& ar){if (ar.IsStoring()){}else {CString str;m_strContents.RemoveAll();while (ar.ReadString(str)) {m_strContents.Add(str);}}}③在CEx_ArrayView::OnDraw中添加下列代码:void CEx_ArrayView::OnDraw(CDC* pDC){CEx_ArrayDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);int y = 0;CString str;for (int i=0;i<pDoc->m_strContents.GetSize(); i++) {str = pDoc->m_strContents.GetAt(i);pDC->TextOut( 0, y, str);y += 16;}}代码中,宏ASSERT_VALID是用来调用AssertValid函数,AssertValid的目的是启用“断言”机制来检验对象的正确性和合法性。
通过GetDocument函数可以在视图类中访问文档类的成员,TextOut是CDC类的一个成员函数,用于在视图指定位置处绘制文本内容。
④编译运行并测试,打开任意一个文本文件,结果如图13.2所示。
需要说明的是,该示例的功能还需要进行添加,例如显示的字体改变、行距的控制等,最主要的是不能在视图中通过滚动条来查看文档的全部内容。
【例Ex_Cursor】改变应用程序光标①用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Cursor。
②按快捷键Ctrl+R,打开“插入资源”对话框,选择“Cursor”类型后,单击按钮。
在图像编辑器窗口的控制条上,单击“新建设备图像”按钮,从弹出的“新建设备图像”对话框中,单击按钮。
在弹出的“自定义图像”对话框中,保留默认的大小和颜色数,单击按钮。
回到“新建设备图像”对话框。
这样,“32 x 32, 16 颜色”设备类型就被添加上了,单击按钮。
③在图像编辑器的“设备”组合框中,选择“单色[32 x 32 ]”,打开“图像”(Image)菜单,选择“删除设备图像”(Delete Device Image)命令,这样,就删除“单色[32 x 32 ]”设备类型。
如果不这样做,加载后的光标不会采用“32 x 32, 16颜色”设备类型。
④保留默认ID号IDC_CURSOR1,用图像编辑器绘制光标图形,指定光标热点位置为(15, 15),结果如图12.6所示。
图12.6 创建的光标⑤为CMainFrame类添加一个成员变量m_hCursor,变量类型为光标句柄HCURSOR。
用MFC ClassWizard为CMainFrame类添加WM_SETCURSOR的消息映射函数,并增加下列代码:BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message){BOOL bRes = CFrameWnd::OnSetCursor(pWnd, nHitTest, message);if (nHitTest == HTCAPTION ) {m_hCursor = LoadCursorFromFile("c:\\windows\\cursors\\hand .ani");SetCursor(m_hCursor); bRes = TRUE;} else if (nHitTest == HTCLIENT ) {m_hCursor = AfxGetApp()->LoadCursor(IDC_CURSOR1);SetCursor(m_hCursor); bRes = TRUE;}return bRes;}⑥编译运行并测试。
创建⼀个简单的VisualBasic应⽤程序第1部分PART实验实验1创建⼀个简单的Visual Basic应⽤程序1.1 使⽤集成开发环境实验⽬的(1)熟练掌握Visual Basic的启动⽅法。
(2)熟悉Visual Basic的集成开发环境。
实验内容1.启动Visual Basic在Windows环境下,启动Visual Basic有两种⽅法。
(1)⽅法⼀选择“开始”菜单→“程序”菜单项→“Microsoft Visual Basic 6.0中⽂版”菜单项→“Microsoft Visual Basic 6.0中⽂版”菜单项,单击⿏标左键,启动Visual Basic,如图1-1所⽰。
图1-1 启动Visual Basic2(2)⽅法⼆打开“资源管理器”→找到..\Program Files\Microsoft Visual Studio\Visual Basic 98的Visual Basic 6.exe⽂件→双击该⽂件启动Visual Basic。
2.Visual Basic的集成开发环境Visual Basic的集成开发环境包括:标题栏、菜单栏、⼯具栏、控件箱和窗体。
启动Visual Basic后就会出现Visual Basic的启动界⾯,接着出现“新建⼯程”窗⼝,如图1-2所⽰,选择“标准EXE”图标,单击“打开”按钮,就新建⼀个“标准EXE”⼯程。
则出现了Visual Basic的集成开发环境,如图1-3所⽰,新建了⼀个空⽩的Form1窗体。
图1-2 新建⼯程界⾯图1-3 Visual Basic 的集成开发环境在集成开发环境中默认显⽰窗体设计器窗⼝、⼯程资源管理器窗⼝、属性窗⼝、代码窗⼝和窗体布局窗⼝5个窗⼝,这些窗⼝可以关闭、打开和移动改变位置。
(1)关闭窗⼝通过单击各窗⼝的图标来关闭。
实验1 创建⼀个简单的Visual Basic应⽤程序 3(2)打开窗⼝打开窗⼝有两种⽅法:选择“视图”菜单的各窗⼝名称打开窗⼝。
Visual C++MFC入门教程(经典版)visual-c++mfc入门教程(经典版)木有页眉visualc++mfc入门教程目录+--第一章vc入门|------1.1如何学好vc|------1.2认知windows消息机制|------1.3利用visualc++/mfc开发windows程序的优势|------1.4利用mfc进行开发的通用方法介绍|------1.5mfc中常用类,宏,函数介绍+--第二章图形输出|------2.1和gui有关的各种对象|------2.2在窗口中输入文字|------2.3使用点,刷子,笔进行绘图|------2.4在窗口中绘制设备有关图形,图标,设备毫无关系图形|------2.5采用各种态射方式|------2.6多边形和剪贴区域+--第三章文档视结构|------3.1文档视图框架窗口间的关系和消息传送规律|------3.2接收用户输入|------3.3使用菜单|------3.4文档,视,框架之间相互作用|------3.5利用序列化展开文件读取|------3.6mfc中所提供更多的各种视类了解+--第四章窗口控件|------4.1button|------4.2staticbox|------4.3editbox|------4.4scrollbar|------4.d利用appwizard创建并使用toolbarstatusbardialogbar|------4.egeneralwindow|------4.f关于wm_notify的采用方法+--第五章对话框|------5.1使用资源编辑器编辑对话框|------5.2创建有模式对话框|------5.3创建无模式对话框|------5.4在对话框中展开消息态射|------5.5在对话框中进行数据交换和数据检查1木有页眉|------5.6采用属性对话框|------5.7采用通用型对话框|------5.8建立以对话框为基础的应用|------5.9使用对话框作为子窗口+--第六章网络通信开发|------6.1winsock介绍|------6.2利用winsock展开并无相连接的通信+------6.3利用winsock创建存有相连接的通信《visualc++开发指南》闻怡洋/文第一章vc入门1.1如何努力学习vc这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。
mfc单文档例子以下是一个简单的MFC单文档(SDI)应用程序的示例:1. 首先,创建一个新的MFC应用程序项目。
在Visual Studio中,选择“文件”菜单,然后选择“新建”->“项目”。
在“新建项目”对话框中,选择“MFC应用程序”,然后输入项目名称和位置,并单击“确定”。
2. 在“MFC应用程序向导”中,选择“单文档”作为应用程序类型,并单击“完成”按钮。
3. 在生成的代码中,找到`CMainFrame`类。
这是应用程序的主窗口类。
4. 在`CMainFrame`类的`OnCreateClient`函数中,添加以下代码:```cppvoid CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext pContext){// 创建视图窗口m_(_T("My View"), WS_CHILD WS_VISIBLE WS_BORDERWS_HSCROLL WS_VSCROLL, CRect(0, 0, 800, 600), this,ID_VIEW_WIN);}```5. 在`CMainFrame`类的`OnCreate`函数中,添加以下代码:```cppBOOL CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;// 创建工具栏和状态栏CToolBarCtrl tb;CRect rect(0, 0, 800, 24);(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPERCBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPER CBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(this);m_(0, ID_VIEW_STATUSBAR, SBPS_STRETCH, 0);m_(1, ID_VIEW_STATUSBAR2, SBPS_STRETCH, 0);m_(2, ID_VIEW_STATUSBAR3, SBPS_STRETCH, 0);m_(0, SBPS_NORMAL);m_(1, SBPS_NORMAL);m_(2, SBPS_NORMAL);m_(0, _T("Ready"));m_(1, _T("Ready"));m_(2, _T("Ready"));return TRUE;}```6. 编译并运行应用程序。
VS2020/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)这里给大伙儿一个简单的例子,演示如何生成单文档应用程序框架。
解决方案与工程在VS2020的利用介绍中已经讲了解决方案与工程的概念,那个地址再重提一下。
每一个应用程序都作为一个工程来处置,它包括了头文件、源文件和资源文件等,这些文件通过工程集中治理。
在VS2020中,工程都是在解决方案治理之下的。
一个解决方案能够治理多个工程,能够把解决方案明白得为多个有关系或没有关系的工程的集合。
VS2020提供了一个Solution Explorer解决方案阅读器视图,能够显示当前解决方案的内容,当新建一个工程时能够选择新建一个解决方案仍是加入当前解决方案。
以下图左侧面板中正在显示的视图确实是Solution Explorer,视图中有一个解决方案-HelloWorld,此解决方案下有一个同名的工程-HelloWorld。
在应用程序向导生成应用程序后,VS2020会在用户设置的途径下,以解决方案名为名称成立一个目录,里面寄存自动生成的文件。
利用VS2020应用程序向导生成单文档应用程序框架那个地址简略演示下如何生成单文档应用程序框架,让大伙儿先有个直观的了解,有不睬解的地址能够留着以后回来再看。
下面依照操作步骤一步步讲解:1.点菜单栏File->New->Project,弹出New Project对话框,咱们能够选择工程类型。
若是安装完VS2020以后第一启动时已经设置为VC++,那么Installed Templates->Visual C++项会默许展开,而若是没有设置VC++,那么能够展开到Installed Templates->Other Languages->Visual C++项。
因为咱们要生成的是MFC程序,因此在“Visual C++”下选择“MFC”,对话框中间区域会显现三个选项:MFC ActiveX Control、MFC Application和MFC DLL。
Visual C++6.0操作指南Visual C++6.0强大的操作界面会令人眼花缭乱,但它同样强大的编程工具AppWizard (应用程序向导)的和Class wizard(类向导)使得编程变得非常简单,可视化(Visual)真正体现了面向对象的特征,很多人称之为点击编程,它使程序员的主要精力不是放在美化界面的设计上,而是致力于源代码本身。
这里介绍如何编写——个简单的应用程序,并介绍怎样在对话框窗口中增加一个命令按钮控制。
一、生成一个Hello应用程序生成一个只弹出一个窗口,但无任何实际应用的Hello应用程序。
操作步骤如下:1)进入Visual C++6.0的工作台,如图1所示。
图1 Visual C++6.0的工作界面2)从顶部“File”菜单中选“New”选项,出现一对话框,该窗口中有四个标签:File、Project、Workspace、Other Docments。
3)选择Project 标签,在该页左边的编辑框中选择MFC AppWizard(exe)项,即要用生成一个可执行文件。
4)在Project Name编辑框中输入要创建的工程文件的名字,在此命名为“Hello”。
5)在Location编辑框中选择存放该工程文件的路径和位置。
6)由于这是第一个工程文件,必须创建一个新的工作区,故“Create New Workspace ”选项必须选中。
7)在Platforms编辑框中选择win32。
表示我们使用的Visual C++ 6.0是在32位操作系统下运行的。
8)确定工程文件的类型、名称和路径选项后按OK按钮,就可以开始创建该工程文件了。
见图2所示。
图2 New 对话框下面将在Visual C++6.0 MFC APP Wizard的可视化指导下,根据自已的设计来生成应用程序的工程文件和应用程序的框架文件。
V isual C++6.0显示出—个MFC App Wizard-Step1的窗口,如图3所示。
MFC单文档窗体类的创建过程MFC(Microsoft Foundation Classes)是微软公司提供的一种面向对象的程序开发工具,用于简化Windows操作系统的应用程序开发。
MFC 提供了丰富的类库和框架,使开发人员能够更快速地创建Windows程序。
在MFC中,窗体类是常用的一种类,用于创建窗体应用程序。
本文将详细介绍MFC单文档窗体类的创建过程。
在MFC中,创建单文档窗体类的过程可以分为以下几个步骤:1.创建一个新的MFC应用程序项目首先,需要使用MFC应用程序向导创建一个新的MFC应用程序项目。
打开Visual Studio,选择“文件”->“新建”->“项目”,在“新建项目”对话框中选择“Visual C++”->“MFC”->“MFC应用程序”,并填写项目名称和保存路径,点击“确定”按钮。
接下来,按照向导的指引,选择“单文档”应用程序类型,并点击“完成”按钮。
2.添加对话框资源在MFC应用程序项目创建完成后,需要添加对话框资源。
在资源视图中,选择“添加”->“资源”->“对话框”,在弹出的对话框中输入对话框名称,并点击“确定”按钮。
此时,会自动生成一个对话框资源,可以在其中添加所需的控件。
3.创建窗体类在MFC应用程序项目中,会自动生成一个CWinApp类和一个CMainFrame类。
我们需要创建一个新的窗体类,用于承载对话框资源。
在Solution Explorer中,右击“源文件”->“添加”->“类”,在弹出的“添加类”对话框中选择“MFC”->“MFC类”->“单文档视图”,并填写类名称和保存路径,点击“添加”按钮。
此时,会自动生成一个新的窗体类,可以在其中添加处理逻辑。
4.修改窗体类代码打开新生成的窗体类的头文件和源文件,可以看到自动生成的代码。
在头文件中,需要包含所需的头文件,并声明成员变量和成员函数。
在源文件中,需要实现窗体类的构造函数、析构函数和其他成员函数。
Visual c++ 6.0使用简介一、功能窗口的介绍1.浏览项目工作区:项目工作区以窗口方式组织项目、文件和项目设置。
项目工作区窗口一般位于屏幕左侧,项目工作区窗口底部有一组标签,用于从不同的角度(视图)察看项目中包含的工程和联机文档。
项目工作区包含四种视图:FileView(文件视图):显示所创建的工程。
展开文件夹可以察看工程中所包含的文件。
ClassView(类视图):显示项目中定义的C++类,展开文件夹显示工程中所定义的所有类,展开类可察看类的数据成员和成员函数以及全局变量、函数和类型定义。
ResourceView(资源视图):显示项目中所包含的资源文件。
展开文件夹可显示所有的资源类型。
InfoView(文档视图):显示联机文档目录表。
展开目录表可以显示所有的帮助主题,双击主题将弹出InfoViewer Topic窗口,显示关于该主题的详细信息。
要显示关于源程序窗口的关键字的相关信息,可以将光标移动到该关键字上,然后按下F1键。
还可以使用InfoViewer显示来自Internet WWW(万维网)的页面。
单击项目工作区底部的标签可以从一个视图切换到另一个视图。
2.浏览AppWizard(应用程序向导):AppWizard是Visual C++提供的一个高级编程工具,它可以产生应用的C++源代码框架。
通过与另一个工具ClassWizard一起配合使用,可大大节省开发应用程序的时间和精力。
AppWizard是一个标准的C++源代码生成器。
它通过一系列的对话框来提示用户输入所需创建的程序的信息,如它的名字和位置。
用户还可以指定它是否具有一些特性,如多文档接口或工具条,对数据库、OLE的支持等。
然后AppWizard生成一些文件,这些文件构成程序的框架。
由AppWizard生成的程序是一个基本的Windows程序,用户可以编译并运行——它实际什么也不做。
它只是准备好增加那些为程序提供功能性的资源和代码。
单文档多文档1.CMainFrame类是MFC的CFrameWnd类的派生类,它主要负责创建标题栏、菜单栏、工具栏和状态栏。
AssertValid 诊断CMainFrame对象是否有效,调试用。
Dump 输出CMainFrame对象的状态信息,调试用。
Oncreate 创建工具栏和状态栏。
视图窗口是由基类Cframewnd的成员函数oncreate通过调用oncreateclient函数创建。
2. Doc文档是MFC的cdocument类的派生类,他主要负责应用程序数据的保存和装载,实现文档的序列化功能。
OnNewDocument 当用户执行File菜单中New命令时,MFC应用程序框架会调用此函数来完成新建文档的工作。
Serialize 负责文档数据的磁盘读写操作。
注意:由于单文档应用程序只处理一个文档对象,当执行New命令时,文档对象已经生成,因此文档类的构造函数不会再调用,所以不会在构造函数中进行文档对象成员变量的初始化,而应在OnNewDocument函数中。
在重载时首先需要调用基类CDocument的OnNewDocument函数。
3.View视图是负责客户区文档数据的显示,以及如何进行人机交互(从CDocument派生的类接受信息并向用户显示,同时用户的输入信息通过它向由CDocument派生的类传递)。
GetDoument 用于获取当前文档对象的指针OnDraw 虚函数,扶着文档对象的数据在用户视图区的显示输出。
4.WinMain函数5.Mfc应用程序运行机制调用CWinApp的构造函数-》程序入口函数winmain接受控制-》WinMain函数调用应用程序类的InitInstance函数-》WinMain函数今天消息循环-》程序终止。