Visual C++第03章 MFC基本应用程序的建立(3)
// Place all significant initialization in InitInstance
}
///////////////////////////////////////////////////////////////////////////// // The one and only CMy2App object
CMy2App theApp;//定义的一个应用类对象,表示一个实例 ///////////////////////////////////////////////////////////////////////////// // CMy2App initialization
BOOL CMy2App::InitInstance() { AfxEnableControlContainer();//若用户在MFC AppWizard的第三步中,选中了
//“ActiveX Controls”则表示所创建的应用程序支持ActiveX控件
// Standard initialization
// If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following
// the specific initialization routines you do not need. //若用户在MFC AppWizard的第四步中,选中了”3D controls”,则表示所创建的应用程序支持//Windows95版本前的3D控件风格。(对下面2条)
#ifdef _AFXDLL Enable3dControls();// Call this when using MFC in a shared DLL使用动态的3D控件 #else Enable3dControlsStatic();// Call this when linking to MFC statically使用静态的3D控件 #endif // Change the registry key under which our settings are stored. // TODO: You should modify this string to be something appropriate // such as the name of your company or organization. SetRegistryKey(_T(\//在Windows系统注册表//中登记应用程序的主键值,以便将一些与应用程序相关的参数存放在该主键值下 LoadStdProfileSettings(); // Load standard INI file options (including MRU)//从注册表中 //调入应用程序的一些标准参数,其中包括最近文件列表的文件名
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
// 以下:若用户在MFC AppWizard的第一步中,选择了“Single document(单文档)”类型,//则进行下列的单文档模板的创建及其初始化操作。 CSingleDocTemplate* pDocTemplate;//定义一个单文档模板指针变量
pDocTemplate = new CSingleDocTemplate//登记并创建单文档应用程序模板 ( IDR_MAINFRAME,//菜单,快捷键等的资源标识号
RUNTIME_CLASS(CMy2Doc),//文档类
RUNTIME_CLASS(CMainFrame), // main SDI frame window主框架窗口类 RUNTIME_CLASS(CMy2View));//视图类
AddDocTemplate(pDocTemplate);//向应用程序添加文档模板
// Parse command line for standard shell commands, DDE, file open //分列命令行标准命令如DDE,文件打开等。
CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line //传送命令行指定的命令,并执行相应的操作
if (!ProcessShellCommand(cmdInfo)) return FALSE; // The one and only window has been initialized, so show and update it. //对主框架窗口进行初始化以便显示和更新 }
///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About
class CAboutDlg : public CDialog//基类CDialog(对话框类)派生出的CAboutDlg类 { //该函数与前面几个类不同的是,该类增加AFX_DATA机制, //称为数据映射机制,这个机制是用来实现DDX(数据交换) // DDV(数据校验),它能使应用程序与用户交互功能的实现 //变得更为容易和直接。 public: CAboutDlg(); // Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };//枚举类型IDD_ABOUTBOX的映射宏 //}}AFX_DATA
// ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg)
m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support数据交换/校验
//}}AFX_VIRTUAL //虚函数 // Implementation protected:
//{{AFX_MSG(CAboutDlg) // No message handlers //}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { }
void CAboutDlg::DoDataExchange(CDataExchange* pDX) {
//{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT
CDialog::DoDataExchange(pDX);//数据交换函数 //{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)//是ClassWizard定义的专门用做消息映射的标记,
// No message handlers //表示该程序块中的消息映射函数是由 //}}AFX_MSG_MAP //ClassWizard来自动管理的,用户一般不需要更改 END_MESSAGE_MAP()
// App command to run the dialog
void CMy2App::OnAppAbout()//执行缺省对话框函数 {
CAboutDlg aboutDlg; //定义的CAboutDlg对象
aboutDlg.DoModal(); //调用相应的库函数,显示CAboutDlg对话框
}
///////////////////////////////////////////////////////////////////////////// // CMy2App message handlers
2、 CMainFrm.h (cpp)主框架类
CMainFrm的基类是CFrameWnd,该类是显示主窗口,是我们找到菜单栏、窗口的标题栏以及工具栏的地方,主窗口对象负责窗口中出现的、围绕操作领域的一切,如:图画、文本和其它图形,这个区域称为窗口中的客户区。它用于管理应用程序窗口显示如:标题栏、菜单栏、工具栏、状态栏、控制菜单、控制按钮等,它是所有MDI(多文档)和SDI(单文档)子窗口的包容器。 3、 文件名View.h (cpp)视图类
CMyView的基类是CView,处理客户区,是我们在程序中设置数据格式及显示数据的位置,如我们在创建一个字处理程序时正在编辑的文本,事实上,视图对象是出现在客户区顶部的窗口本身,用于让用户通过窗口来访问文档、视图类。
4、 CMyDoc.h (cpp)文档类
CMyDoc.h (cpp)的基类是CDocument,为程序存储数据,将所有数据存在文档中,而在视图对象中处理并显示。它包含了应用程序在运行期间所用到的数据文档。
5、 工作区里出现的其它有关文件(见画线程序)
a) Resource.h是标准的头文件,包含所有资源符号的定义。
b) Stdafx.h用于建立预编译头文件(文件名.pch)和一个预定义的类型文件
stdafx.obj,由于MFC体系结构非常大,如果每次都编译的话很费事,因此,把常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h等,然后让stdafx.cpp包含stdafx.h文件。这样由于编译器可以 …… 此处隐藏:5117字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C