在Visual C++中定制AppWizard (三)
2010-07-25 20:46:40 来源:WEB开发网添加定制的对话框
因为我们的Custom AppWizard有一个额外的对话框。所以我们首先要定制这个对话框的模板资源,以便它能收集输入信息,今后用此定制AppWizard创建的所有应用程序的“关于”对话框中都会显示这些信息。选择“ResourceView”标签,打开工程资源表中的“Dialog”。你会发现有一个原始对话框,其ID是IDD_CUSTOM1。定制后的对话框应该如图四:
图四
表一中是对话框中编译框控制的ID,注意这里的“程序介绍”和“代码注释”编辑框控制的风格属性都要设置成“Multiline”。
控制
控制ID
程序员编辑框
IDC_EDT_PROGRAMMER
Web 站点编辑框
IDC_EDT_WEB_PAGE
程序介绍编辑框
IDC_EDT_GENERAL_INFO
代码注释编辑框
IDC_EDT_COMMENT_INFO
表一 对话框中的控制的资源IDs
添加完对话框的资源,我们还要为对话框控制定义成员变量。进入菜单“View|ClassWizard”,选择“Member Variables”标签,程序变量的类型都是CString类型,名称分别为:m_strProgrammer、m_strWebPage、m_strGeneralInfo、m_strCommentInfo。 接下来是实现CCustom1Dlg对话框类初始化成员函数OnInitDialog()。在OnInitDialog()的return语句前面添加如下代码
//
VckbaseWizaw.m_Dictionary.Lookup("PROGRAMMER", m_strProgrammer);
VckbaseWizaw.m_Dictionary.Lookup("WEB_PAGE", m_strWebPage);
VckbaseWizaw.m_Dictionary.Lookup("GENERAL_INFO", m_strGeneralInfo);
VckbaseWizaw.m_Dictionary.Lookup("COMMENT_INFO", m_strConmmentInfo);
UpdateData(FALSE);
//
此段代码的作用是从Dictionary字典中获取定制AppWizard宏的值。VckbaseWizaw是一个CVckbaseWizAppWiz(派生于CCustomAppWiz)类型的全局对象,它在VckbaseWizaw.h中定义。接下来是从CCustom1Dlg的构造函数中删除初始化代码,因为它们的值将在CVckbaseWizAppWiz::InitCustomAppWiz()函数中初始化。
我们还要做一件事情就是存储输入对话框中的数据,也就是说要用创建新工程时输入的数据更新Dictionary字典。这件事情要在CCustom1Dlg::OnDismiss()函数中完成。在CCustom1Dlg::OnDismiss()的return语句前面加入以下代码:
//
VckbaseWizaw.m_Dictionary.SetAt("PROGRAMMER", m_strProgrammer);
VckbaseWizaw.m_Dictionary.SetAt("WEB_PAGE", m_strWebPage);
VckbaseWizaw.m_Dictionary.SetAt("GENERAL_INFO", m_strGeneralInfo);
VckbaseWizaw.m_Dictionary.SetAt("COMMENT_INFO", m_strCommentInfo);
CTime date = CTime::GetCurrentTime();
CString szDate = date.Format( "%A, %B %d, %Y" );
VckbaseWizaw.m_Dictionary["DATE_INFO"] = szDate;
return TRUE;
//
如果你现在构造这个定制的AppWizard并用它来创建新的应用程序的话,你可以看到刚才创建的对话框,但是还有问题,那就是如何将输入对话框的值作为宏存储在AppWizard的字典中,以便今后在新的工程中使用?答案是使用模板文件中的占位符,AppWizard正是用这些包含有占位符的模板文件来构造新的工程文件。在下面的主题中,我们将讨论如何创建新的模板文件。
- ››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++实现视频图像处理技术
更多精彩
赞助商链接