友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第37章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!





…………………………………………………………Page 169……………………………………………………………

文件名为 StdAfx。obj。  



Resource。h  



定义新资源 ID 的标准头文件。Microsoft Developer Studio 读取和更新该文件。  



/////////////////////////////////////////////////////////////////////////////  



其它注意事项:  



AppWizard 使用 〃TODO:〃 来指出需要添加或定制源代码的地方。  



如果你的应用程序使用了 MFC 的共享动态链接库,并且你的应用程序使用了与操作系统  



当前语言不同的语言,那么你需要将相应的本地化资源文件 MFC40xxx。DLL 从 Microsoft  



Visual C++ CD…ROM 上复制到 system 或 system32  目录下,并将其改名为 MFCLOC。DLL。  



(〃xxx〃代表指定语言的缩写,如 MFC40DEU。DLL 包括了已被翻译为德文的资源。)如果你  



没有进行这个步骤,应用程序的一些用户界面元素仍将保持为操作系统的语言。  



/////////////////////////////////////////////////////////////////////////////  



下面我们从头文件StdAfx。h入手,来分析该应用程序。头文件 

StdAfx。h的列表清单如下:  



// stdafx。h : 本包含文件包含了标准系统包含文件,以及经常使用的工程特定的包含  



// 文件,在很多情况下,我们并不需要修改这些文件。  



//  



#if !defined(AFX_STDAFX_H__7ABABF8C_0C8C_11D2_BC21_0000B4810A31__INCLUDED_)  



#define AFX_STDAFX_H__7ABABF8C_0C8C_11D2_BC21_0000B4810A31__INCLUDED_  



#if _MSC_VER 》= 1000  



#pragma once  



#endif // _MSC_VER 》= 1000  



#define VC_EXTRALEAN // 从 Windows 头文件中排除很少用到的那一部分  



#include  // MFC 核心和标准部件  



#include  // MFC 扩展  



#include  // MFC OLE 自动化类  


…………………………………………………………Page 170……………………………………………………………

#ifndef _AFX_NO_AFXCMN_SUPPORT  



#include  // MFC 对 Windows 公用控件的支持  



#endif // _AFX_NO_AFXCMN_SUPPORT  



    



//{{AFX_INSERT_LOCATION}}  



// Microsoft Developer Studio 将在上一行之前最接近的地方添加附加的声明  



#endif // !defined(AFX_STDAFX_H__7ABABF8C_0C8C_11D2_BC21_0000B4810A31__INCLUDED_)  



与头文件相对应的实现文件为StdAfx。cpp文件,该文件只有一行代码,如下面的清单所示:  



// stdafx。cpp : 包含标准包含文件的源文件  



// DialogDemo。pch 为预编译头文件  



// stdafx。obj 中包含了预编译类型信息  



#include 〃stdafx。h〃  



StdAfx。h文件是Visual  C++工程的预编译头文件,将一些常用的并且 

很少需要修改的头文件放入StdAfx。h中可以有效的提高Visual  C++的 

编译速度。  



在StdAfx。h头文件中定义的标识符VC_EXTRALEAN将从Windows包含文 

件中排除了一些不常用的头文件,从而提高应用程序的编译速度,但 

是,如果应用程序中需要使用在被排除的这些头文件中声明的函数, 

必须额外的添加这些对这些头文件的包含,否则将会导致编译出错。  



对其它包含头文件的说明请参见StdAfx。h头文件清单中的注释。  



在头文件Resource。h中包含了对程序和资源中所用到的常量的定义, 

其清单如下:  



//{{NO_DEPENDENCIES}}  



// Microsoft Visual C++ 生成包含文件。  



// 由 DIALOGDEMO。RC 使用  



//  



#define IDR_MAINFRAME 128  



#define IDM_ABOUTBOX 0x0010  


…………………………………………………………Page 171……………………………………………………………

#define IDD_ABOUTBOX 100  



#define IDS_ABOUTBOX 101  



#define IDD_DIALOGDEMO_DIALOG 102  



// 新对象的下一个默认值  



//   



#ifdef APSTUDIO_INVOKED  



#ifndef APSTUDIO_READONLY_SYMBOLS  



#define _APS_NEXT_RESOURCE_VALUE 129  



#define _APS_NEXT_MAND_VALUE 32771  



#define _APS_NEXT_CONTROL_VALUE 1000  



#define _APS_NEXT_SYMED_VALUE 101  



#endif  



#endif  



下面我们再来分析一下头文件DialogDemo。h:  



// DialogDemo。h : 应用程序 DIALOGDEMO 的主要头文件  



//  



#if !defined(AFX_DIALOGDEMO_H__7ABABF88_0C8C_11D2_BC21_0000B4810A31__INCLUDED_)  



#define AFX_DIALOGDEMO_H__7ABABF88_0C8C_11D2_BC21_0000B4810A31__INCLUDED_  



#if _MSC_VER 》= 1000  



#pragma once  



#endif // _MSC_VER 》= 1000  



#ifndef __AFXWIN_H__  



#error include 'stdafx。h' before including this file for PCH  



#endif  



#include 〃resource。h〃 // 主要符号  



/////////////////////////////////////////////////////////////////////////////  


…………………………………………………………Page 172……………………………………………………………

// CDialogDemoApp:  



// 在 DialogDemo。cpp  中包括了该类的实现  



//  



class CDialogDemoApp : public CWinApp  



{  



public:  



CDialogDemoApp();  



// 重载  



// ClassWizard 生成的虚函数重载  



//{{AFX_VIRTUAL(CDialogDemoApp)  



public:  



virtual BOOL InitInstance();  



//}}AFX_VIRTUAL  



// 实现  



//{{AFX_MSG(CDialogDemoApp)  



// 注意 ClassWizard 将在这里添加或删除成员函数  



// 不要编辑你在这里所看到的这些生成代码块 !  



//}}AFX_MSG  



DECLARE_MESSAGE_MAP()  



};  



    



/////////////////////////////////////////////////////////////////////////////  



//{{AFX_INSERT_LOCATION}}  



// Microsoft Developer Studio 将在紧接着上一行之前的地方插入附加的声明。  



#endif // !defined 

(AFX_DIALOGDEMO_H__7ABABF88_0C8C_11D2_BC21_0000B4810A31__INCLUDED_)  



在头文件DialogDemo。h中定义了应用程序类CDialogDemoApp。在MFC 


…………………………………………………………Page 173……………………………………………………………

中,应用程序类封装了一个Windows应用程序的初始化、运行和终 

止。每一个MFC应用程序都必须包括一个从CWinApp派生的应用程序 

类,在应用程序DialogDemo中,这个类就是CDialogDemoApp。这个对 

象在窗口被创建之前进行构造。类CWinApp从类CWinThread派生,它 

代表了应用程序的主执行线程,正如我们在前面的章节中所讲述的那 

样,一个应用程序可以有多个执行线程。在MFC的最近看到版本中, 

已为类CWinThread的成员函数InitInstance、Run、ExitInstance和 

OnIdle提供了默认的实现。由于我们在讨论CWinApp时更侧重于它作 

为应用程序对象所扮演的角色,而不是作为主线程,因此,我们在讨 

论前面提到的四个成员函数的时候,可以把它们想象为在类CWinApp 

定义的成员函数,即立足于应用程序对象的角度来看待和分析它们的 

行为,而不是立足于一个单独的线程的角度。  



应用程序类构成了应用程序的主执行线程。使用Win32   API函数可以 

创建新的执行线程。这些线程仍可以使用MFC库,详细的信息请参考 

本书关于进程和线程的有关章节。  



同其它的任何Windows应用一样,框架应用程序仍然具有
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!