在Visual C++中定制AppWizard (三)
2010-07-25 20:46:40 来源:WEB开发网为了在AppWizard所创建的每一个工程源文件中加上作者自己的专门注释(比如,作者姓名、代码许可声明、创建日期等),我们必须修改AppWizard工程Template目录中所有的.h文件和.cpp文件,在每个文件最上面添加如下代码段://///////////////////////////////////////////////////////////////////////////
——修改文档/视图模板文件和对话框模板文件
// Project:$$ROOT$$
// Author:$$PROGRAMMER$$
// Date:$$DATE_INFO$$
// Description:$$COMMENT_INFO$$
//
/////////////////////////////////////////////////////////////////////////////
这一部分我们将修改文档/视图类和对话框类的头文件和实现文件,之所以要改这些文件是因为缺省的视图实现文件和对话框实现文件通常都要声明和实现默认的CAboutDlg类,而我们在前面创建的about.h文件中已经包含了CAboutDlg的声明。
如果你用AppWizard创建一个名叫MyApp的SDI或者MDI程序,主程序类的声明将会在MyApp.h中,实现将会在MyApp.cpp中。这是因为名为$$ROOT$$的宏其值被设置为工程的名字,并且被用来命名包含主程序类定义和声明的文件。newproj.inf中的两行代码证明了这一点:
root.h $$root$$.h
root.cpp $$root$$.cpp
1、 打开root.cpp文件(在Template目录中),按照如下的步骤进行修改:
2、 删除文件尾部的CAboutDlg类声明。
3、 删除所有的CAboutDlg成员函数。添加如下代码:// App command to run the About dialog
4、 到文件顶部,在#include "$$root$$.h"语句之后加上,#include "about.h"
void $$APP_CLASS$$::OnAppAbout()
{
CAboutDlg().DoModal();
}
现在基于文档/视图的模板文件已经修改完成,下面要修改基于对话框的模板文件。分析一下root.h和root.cpp以及dlgroot.h和dlgroot.cpp模板文件的作用,不难得出root.h和root.cpp模板用于创建所有基于文档/视图程序的主程序类源文件,dlgroot.h和dlgroot.cpp模板用于创建所有基于对话框程序的主程序类源文件。与基于文档/视图的应用程序不同,基于对话框的程序其“关于”对话框的定义与主程序类的定义不在同一个文件当中。而是定义在主对话框的实现文件中,其模板文件是dialog..cpp。打开dialog.h文件(位于Template目录),定位到以下代码处:
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
插入下面的函数声明:
afx_msg void OnAbout();
打开dialog.cpp,按照以下步骤进行修改:
1、 删除$$IF(ABOUT) 到 $$ENDIF之间的所有代码行。
2、 在$$IF(ABOUT) 和 $$ENDIF //ABOUT之间加上语句 #include "about.h":$$IF(ABOUT)
3、 定位到MESSAGE_MAP 部分中的ON_WM_SYSCOMMAND()位置,添加下列代码行:
#include "about.h"
$$ENDIF //ABOUT
ON_BN_CLICKED(ID_APP_ABOUT, OnAbout)
4、 在文件末尾添加下列函数定义:$$IF(ABOUT)
到此,定制AppWizard要做的主要工作以及要编写的主要代码已经完成,在构造和测试它之前,让我们再做一些锦上添花的工作。每次用AppWizard产生工程的时候,其最后一个对话框是一个确认对话框,其中总结性地显示在前面一系列对话框中做出的选择或者选项。下面我们将学习如何轻松确认输入信息,将我们在AppWizard定制对话框中输入的信息也显示在这个确认对话框里。
void $$DLG_CLASS$$::OnAbout()
{
CAboutDlg().DoModal();
}
$$ENDIF //ABOUT
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››Visual C++优化对大型数据集合的并发访问
- ››定制个性化的对话框窗口类
- ››VISUAL C++中的OCX控件的使用方法
- ››Visual C++实现视频图像处理技术
更多精彩
赞助商链接