友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

C语言实例教程(PDF格式)-第20部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!




         About box:  如果选择了该选项,AppWizard将为一个 

                    被称为 “关于”对话框的消息框生成代 

                    码,该消息框用来显示应用程序的版本 

                    号和版权信息等。绝大多数的Windows应 

                    用程序都具有一个关于对话框,图4。4是 

                    Microsoft Word 95 的 “关于”对话框。 

                    在默认情况下,使用AppWizard创建的应 

                    用程序,都具有一个 “关于”对话框。  



         Context  该选项决定是否让AppWizard为应用程序 

         sensitive  创建上下文相关的帮助文件。需要注意 

         help:      的是,对帮助的支持需要帮助编译器 

                    (help  piler),如果在你的Visual  

                    C++中没有安装帮助编译器的话,可以重 

                    新运行Setup程序来安装它。  


…………………………………………………………Page 164……………………………………………………………

3D           决定是否在应用程序中使用具有三维阴 

controls:    影的用户界面。使用了三维外观的应用 

             程序界面看起来象那些在Windows的早期 

             版本 (如Windows 3。x)下运行的程序的外 

             观。默认情况下,使用AppWizard创建的 

             应用程序都具有三维外观。  



Automation:  决定应用程序是否可以操作由其它程序 

             实现的对象,也就是说是否可以将程序 

             作为自动化客户 (Automation client)。  



                                    



图4。 3 使用AppWizard创建基于对话框的应用程序:第二步  



                                  



      图4。 4 应用程序中的 “关于”对话框  



ActiveX    决定你的应用程序是否使用ActiveX控件。 


…………………………………………………………Page 165……………………………………………………………

         controls:  如果在创建应用程序框架时没有选择该选 

                  项,则必须在InitInstance成员函数中添 

                  加对AfxEnableControlContainer的调用来 

                  向工程中插入ActiveX控件。在默认情况 

                  下,使用AppWizard创建的应用程序可以使 

                  用ActiveX控件。  



         Windows  该选项决定应用程序是否支持Windows套接 

         sockets:  字。Windows套接字允许应用程序之间通过 

                  基于TCP/IP的网络进行通信。  



在图4。3所示对话框的最下部可以输入对话框所用的标题。在默认情 

况下AppWizard将工程名作为对话框的标题。  



设置完成后单击Next继续。  



5。   在如图4。5所示的对话框中决定是否让AppWizard为所创建的源文 

件添加上注释和使用哪一种链接方式。可以使用两种方式链接到 

MFC,一种方式是使用动态链接库DLL,即选择As  a  shared  DLL;第 

二种方式是像过去所常用的方式那样,使用MFC的静态链接,即选择 

As a statically linked library。两种方式各有优缺点,使用DLL 

可以有效的应用程序执行文件的大小,但在运行时必须保证应用程序 

能够找到所需的动态链接库。使用静态链接的应用程序不需要额外的 

动态链接库的支持,而且可以在性能上获得少许的提高,但是,使用 

静态链接的应用程序的可执行文件可能会大上很多倍。  



                                         



         图4。 5 使用AppWizard创建基于对话框的应用程序:第三步  


…………………………………………………………Page 166……………………………………………………………

6。   在图4。6所示的对话框中更改AppWizard创建的类的类名、基类及 

实现该类的头文件和实现文件。要注意的是,并不是所有的类的所有 

项都可以更改,如果某一项所对应的文本框中的内容的显示变为灰 

色,则表示该项内容不可以修改。如图4。6所示的对话框,我们不可 

能更改类CDialogDemoApp的基类、头文件和实现文件,但是我们却可 

以更改它的类名。修改完成之后,单击Finish。这时,AppWizard弹 

出如图4。7所示的对话框,该对话框给出了对你在前几步中所做的设 

置的总结,如果一切正确无误的话,单击OK接受,这里AppWizard根 

据你的设定定制应用程序的各个代码文件和资源文件,这些文件将在 

本章的后面部分中进行讲述。反之,如果在前面的某一步中的设置有 

误,则可以单击Cancel,然后重新运行AppWizard。  



                                          



         图4。 6 使用AppWizard创建基于对话框的应用程序:第四步  



                                         


…………………………………………………………Page 167……………………………………………………………

                           图4。 7  



  l 注意:  



  l 在单击了Finish按钮之前,你可以使用Back按钮和Next按钮在 

   AppWizard的各个步骤之间进行切换,并更改不合适的设置,但 

    是,一旦单击了Finish之后,除了直接手动的修改源文件或是推 

    翻重来以外,一切行为都是不可逆的。因此,在使用AppWizard之 

    后还需添加某些特性往往需要很多额外的工作,因此,如果是编 

    写新的应用程序的话,我们建议在创建应用程序之前先进行完整 

    的构思,以便于在使用AppWizard时充分发挥其作用,争取让它完 

    成更多的工作,以减轻编写Windows应用程序的复杂程度。  



    



                    第二节 应用程序类  



在创建应用程序框架时,AppWizard同时生成了一个说明文件 

ReadMe。txt。该说明文件是英文的,为了便于读者阅读,我们在下面 

给出的工程DialogDemo的说明文件ReadMe。txt已被翻译为中文。基于 

同样的考虑,在本书中给出示例程序时,对于所有的程序注释,我们 

一律使用中文;对于由AppWizard等生成的程序注释,也一律翻译为 

中文。注意对于不同的工程,其说明文件的内容也是不同的,但它们 

都具有大致相同的结构。  



工程DialogDemo的说明文件ReadMe。txt:  



========================================================================  



MICROSOFT FOUNDATION CLASS LIBRARY : DialogDemo  



========================================================================  



    



AppWizard 已为您创建了应用程序 DialogDemo。 该应用程序不仅演示了 Microsoft  



Foundation Class 的基本使用,而且还可以作为您编写应用程序的起点。  



本文件包括了对构成应用程序 DialogDemo 的每一个文件的总结。  



DialogDemo。h  



该文件是应用程序的主要头文件。它包括了其它工程特定的头文件 (包括 Resource。h)  



和声明 CDialogDemoApp 应用程序类。  


…………………………………………………………Page 168……………………………………………………………

DialogDemo。cpp  



该文件是工程的主要应用程序源文件,它包括了应用程序类 CDialogDemoApp 的实现。  



DialogDemo。rc  



该文件是程序所使用的所有 Microsoft Windows 资源的列表。它包括保存在目录 RES  



下的图标、位图和光标。该文件可以在 Microsoft Developer Studio 中直接编辑。  



resDialogDemo。ico  



应用程序图标所使用的图标文件。该图标被包括在文件 DialogDemo。rc 中。  



resDialogDemo。rc2  



该文件包括的资源不被 Microsoft Developer Studio 编辑。你可以将不可以被资源  



编辑器编辑的资源放入此文件。  



DialogDemo。clw  



ClassWizard 使用该文件所包括的消息来编辑已有的类或添加新类。ClassWizard 还  



使用该文件来保存在创建和编辑消息映射和对话框数据映射以及创建成员函数原型时  



所需的信息。  



    



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



AppWizard 创建了一个对话框类:  



DialogDemoDlg。h; DialogDemoDlg。cpp 对话框  



这些文件包括了类 CDialogDemoDlg。该类定义了应用程序主对话框的行为。对话框  



的模板包括在 DialogDemo。rc 中,可以使用 Microsoft Developer Studio 来编辑  



该文件。  



    



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



其它标准文件:  



StdAfx。h; StdAfx。cpp  



这些文件用于创建预编译头文件 (PCH),该文件名为 DialogDemo。pch,预编译类型  


…………………………………………………………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〃 // 主要符号  



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


…………………………………………………………Pag
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!