教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Visual C++第03章 MFC基本应用程序的建立(3)

来源:网络收集 时间:2025-09-14
导读: // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CMy2App object CMy2App theApp;//定义的一个

// 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

Visual C++第03章 MFC基本应用程序的建立(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/608642.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)