MFC基本应用程序的建立Word文档格式.docx
- 文档编号:18182834
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:41
- 大小:149.58KB
MFC基本应用程序的建立Word文档格式.docx
《MFC基本应用程序的建立Word文档格式.docx》由会员分享,可在线阅读,更多相关《MFC基本应用程序的建立Word文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
一、建一个单文档的MFCWindows应用程序,屏幕上出现一个空窗口。
(注意:
以后我们所建的应用程序一般都是此应用程序类型)
1、在E盘建一个文件夹,名为:
vcpp(存放你建的文件)
2、双击桌面上的MicrosoftVisualC++系统:
-->
File-->
New-->
Projects-->
MFCAppWizard(exe)见150页表3.3-->
输入路径名vcpp(事先建好的文件夹)-->
输入文件名为:
“显示窗口“-->
OK
3、选SDI(单文档)-->
一直缺省最后便建立了一个名为:
”显示窗口”的单文档应用程序-->
运行!
便出现一个空窗口。
注意:
见151---153页的制作过程(缺省各界面的情况)。
我们没作任何保存,它自动存在你的文件夹vcpp里,要删除它,找到你的vcpp文件夹里的这个文件就可以删除,以后你的VC++程序文件都要建在这里,千万不要乱建,乱存。
建好的单文档应用程序里面包括4个类(文件):
主框架程序(类)(MainFrm.cpp)、应用程序(类)(程序名.cpp)、视图程序(类)(程序名Wiew.cpp)、文档程序(类)(程序名Doc.cpp)。
(见下页有解释)
图3.1MFCAppWizard的“新建”对话框
MFCAppWizard创建的应用程序框架类型(参见上面图3.1):
ATLCOMMFCAppWizard创建ATL(ActiveTemplateLibrary)应用模块工程
ClusterResourceTypeWizard创建ClusterResource(用于WindowsNT服务器)
CustomMFCAppWizard创建自己的应用程序向导
DatabaseProject创建数据库应用程序
DevStudioAdd-inWizard创建ActiveX组件或VBScrip宏
ExtendedStoreProcWizard创建基于SQL服务器下的外部存储过程
ISAPIExtensionWizard创建InternetServer程序
MakeFile创建独立于VisualC++开发环境的应用程序
MFCActiveXControlWizard创建ActiveXControl应用程序
MFCAppWizard(dll)MFC的动态连接库
MFCAppWizard(exe)一般MFC的Windows应用程序
UtilityProject创建简单、实用的应用程序
Win32Application其它Win32的Windows应用程序
Win32ConsoleApplicationWin32的控制台应用程序
Win32Dynamic-LinkLibraryWin32的动态连接库
Win32StaticLibraryWin32的静态连接库
显示窗口程序的运行结果(见书153页图3.12):
二、建一个一般MFC的Windows应用程序,屏幕上出现2行字。
1、双击桌面上的MicrosoftVisualC++系统:
MFCAppWizard(exe)-->
输入路径名vcpp(事先建好的文件夹)--->
显示2行字-->
OK选SDI-->
一直缺省
Finish。
2、在View.cpp(视图类)中找到OnDraw(CDC*pDC)函数,写:
CStringstr1=“学好VisualC++走遍天下”;
CStringstr2=“改革开放的28年颂歌!
南山学院好!
”;
pDC->
TextOut(0,0,str1);
TextOut(0,20,str2);
(添写代码情况,见下图3.2)
运行后窗口显示如上添加的2行字,如果显示带颜色的图形、文字等,以后会逐步学到。
●OnDraw(CDC*pDC)函数是视图类中的显示函数
●CDC是设备环境类(在VisualC++5轻松进阶书56页中,有好多它的对象方法),对象方法也叫函数,*pDC是CDC的指针对象
●CString是处理字符的类。
●TextOut(x,y,str)是CDC类的显示函数(函数也叫对象方法),参数x,y是字符串在窗口中的显示位置(xy坐标),str是已定义和赋好值的字符串。
图3.2VisualC++开发环境界面
1、标题栏2、菜单栏3、工具栏4、项目工作区窗口
5、输出窗口6、输出窗口标签7、状态栏8、文档窗口
三、理解程序框架
本部分是留给大家的课后学习、讨论题,一定通过上机,真正理解MFC程序的4个主要的类:
应用程序类、文档类、视图类、主框架类。
(这里只介绍应用程序类)
打开项目工作区里的ClassView或FileView可以看到MFC为我们自动创建了以下几个主要的类:
1、文件名App.h(cpp)应用程序类
CMyApp的基类是CWinApp,而CWinApp的基类又是CWinThread,CWinThread类是用来完成对线程(见后面的名词解释)的控制,包括对线程的创建、运行、终止和挂起等。
它实际上是Windows首先运行的内容,当这个程序开始时,它将会把主窗口放在屏幕上。
C或C++是从main()主函数开始执行,而VC++是从WinMain()函数开始执行,且WinMain()函数就是隐含在此应用程序中。
下面是显示2行字应用程序的头文件和执行文件
//显示2行字.h:
mainheaderfileforthe显示2行字application
#if!
defined(AFX_2_H__6CF87E54_5FC3_419D_B373_44264BFF449C__INCLUDED_)
#defineAFX_2_H__6CF87E54_5FC3_419D_B373_44264BFF449C__INCLUDED_
#if_MSC_VER>
1000
#pragmaonce
#endif//_MSC_VER>
#ifndef__AFXWIN_H__
#errorinclude'
stdafx.h'
beforeincludingthisfileforPCH
#endif
#include"
resource.h"
//mainsymbols
/////////////////////////////////////////////////////////////////////////////
//CMy2App:
//See显示2行字.cppfortheimplementationofthisclass
//
classCMy2App:
publicCWinApp我们用户的应用程序类CMy2App是从MFC基类
{CWinApp派生来的
public:
CMy2App();
应用程序本身的声明
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CMy2App)//是ClassWizard定义的专门用做虚函数重载的标记
public:
//表示该程序块中的虚函数的重载是由ClassWizard
virtualBOOLInitInstance();
//自动管理的,用户一般不需要去更改
//}}AFX_VIRTUAL
//Implementation
//{{AFX_MSG(CMy2App)//是ClassWizard定义的专门用做消息映射声明的
afx_msgvoidOnAppAbout();
//该函数就是消息映射函数,映射”帮助”选单项中的”关于
//显示2行字”命令消息,当用户选择了该命令时,将执行该//函数OnAppAbout
//NOTE-theClassWizardwilladdandremovememberfunctionshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG//标记
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.
#endif//!
//其中的一些注释是由MFCAppWizard为用户自动生成的,如果不需要这些//注释,可在应用程序向导的第五步对话框中,将“Wouldyouliketogenerate
//sourcefilecomments?
”项选为“No,thankyou“。
//显示2行字.cpp:
Definestheclassbehaviorsfortheapplication.
stdafx.h"
//预编译处理的头文件
显示2行字.h"
//应用程序类的头文件
MainFrm.h"
//主框架类的头文件
显示2行字Doc.h"
//文档类的头文件
显示2行字View.h"
//视图类的头文件
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
//CMy2App
BEGIN_MESSAGE_MAP(CMy2App,CWinApp)//消息映射入口(开始)
//{{AFX_MSG_MAP(CMy2App)//消息映射宏存放区
ON_COMMAND(ID_APP_ABOUT,OnAppAbout)//映射”帮助”选单项中的”关于显示2行
//字”命令消息,当用户选择了该命令时,将执行函数OnAppAbout
//NOTE-theClassWizardwilladdandremovemappingmacroshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG_MAP
//Standardfilebaseddocumentcommands//映射命令区
ON_COMMAND(ID_FILE_NEW,CWinApp:
:
OnFileNew)//映射”文件”选单项中的”新建”
//当用户选择了”新建”时,将相应执行CWinApp:
OnFileNew
ON_COMMAND(ID_FILE_OPEN,CWinApp:
OnFileOpen)//映射”文件”选单项中的”打开”
//当用户选择了”打开”时,将相应执行CWinApp:
OnFileOpen
//Standardprintsetupcommand
ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp:
OnFilePrintSetup)//该宏是具体实//现所需要的消息映射。
它有两个参数:
第一个ID_FILE_PRINT,这是一个ID。
第二个参数//CView:
OnFilePrint,这是为ID添加的消息处理函数名称。
这样,通过ON_COMMAND宏
//就将菜单与相应的消息处理函数进行了连接,也就完成了该ID的消息映射。
END_MESSAGE_MAP()//消息映射宏存放区结束
//CMy2Appconstruction
CMy2App:
CMy2App()//构造函数,变量赋初值一般都在这里
{
//TODO:
addconstructioncodehere,
//PlaceallsignificantinitializationinInitInstance
}
//TheoneandonlyCMy2Appobject
CMy2ApptheApp;
//定义的一个应用类对象,表示一个实例
//CMy2Appinitialization
BOOLCMy2App:
InitInstance()
AfxEnableControlContainer();
//若用户在MFCAppWizard的第三步中,选中了
//“ActiveXControls”则表示所创建的应用程序支持ActiveX控件
//Standardinitialization
//Ifyouarenotusingthesefeaturesandwishtoreducethesize
//ofyourfinalexecutable,youshouldremovefromthefollowing
//thespecificinitializationroutinesyoudonotneed.
//若用户在MFCAppWizard的第四步中,选中了”3Dcontrols”,则表示所创建的应用程序支持//Windows95版本前的3D控件风格。
(对下面2条)
#ifdef_AFXDLL
Enable3dControls();
//CallthiswhenusingMFCinasharedDLL使用动态的3D控件
#else
Enable3dControlsStatic();
//CallthiswhenlinkingtoMFCstatically使用静态的3D控件
//Changetheregistrykeyunderwhichoursettingsarestored.
Youshouldmodifythisstringtobesomethingappropriate
//suchasthenameofyourcompanyororganization.
SetRegistryKey(_T("
LocalAppWizard-GeneratedApplications"
));
//在Windows系统注册表//中登记应用程序的主键值,以便将一些与应用程序相关的参数存放在该主键值下
LoadStdProfileSettings();
//LoadstandardINIfileoptions(includingMRU)//从注册表中
//调入应用程序的一些标准参数,其中包括最近文件列表的文件名
//Registertheapplication'
sdocumenttemplates.Documenttemplates
//serveastheconnectionbetweendocuments,framewindowsandviews.
//以下:
若用户在MFCAppWizard的第一步中,选择了“Singledocument(单文档)”类型,//则进行下列的单文档模板的创建及其初始化操作。
CSingleDocTemplate*pDocTemplate;
//定义一个单文档模板指针变量
pDocTemplate=newCSingleDocTemplate//登记并创建单文档应用程序模板
(IDR_MAINFRAME,//菜单,快捷键等的资源标识号
RUNTIME_CLASS(CMy2Doc),//文档类
RUNTIME_CLASS(CMainFrame),//mainSDIframewindow主框架窗口类
RUNTIME_CLASS(CMy2View));
//视图类
AddDocTemplate(pDocTemplate);
//向应用程序添加文档模板
//Parsecommandlineforstandardshellcommands,DDE,fileopen
//分列命令行标准命令如DDE,文件打开等。
CCommandLineInfocmdInfo;
ParseCommandLine(cmdInfo);
//Dispatchcommandsspecifiedonthecommandline
//传送命令行指定的命令,并执行相应的操作
if(!
ProcessShellCommand(cmdInfo))
returnFALSE;
//Theoneandonlywindowhasbeeninitialized,soshowandupdateit.
//对主框架窗口进行初始化以便显示和更新
m_pMainWnd->
ShowWindow(SW_SHOW);
UpdateWindow();
returnTRUE;
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog//基类CDialog(对话框类)派生出的CAboutDlg类
{//该函数与前面几个类不同的是,该类增加AFX_DATA机制,
//称为数据映射机制,这个机制是用来实现DDX(数据交换)
//DDV(数据校验),它能使应用程序与用户交互功能的实现
//变得更为容易和直接。
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//枚举类型IDD_ABOUTBOX的映射宏
//}}AFX_DATA
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);
//DDX/DDVsupport数据交换/校验
//}}AFX_VIRTUAL//虚函数
protected:
//{{AFX_MSG(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG
CAboutDlg:
CAboutDlg():
CDialog(CAboutDlg:
IDD)
//{{AFX_DATA_INIT(CAbo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC 基本 应用程序 建立