WEB开发网
开发学院软件开发VC 在Visual C++中定制AppWizard (三) 阅读

在Visual C++中定制AppWizard (三)

 2010-07-25 20:46:40 来源:WEB开发网   
核心提示:添加定制的对话框因为我们的Custom AppWizard有一个额外的对话框,所以我们首先要定制这个对话框的模板资源,在Visual C++中定制AppWizard (三)(3),以便它能收集输入信息,今后用此定制AppWizard创建的所有应用程序的“关于”对话框中都会显示这些信息,AppWi

添加定制的对话框

因为我们的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正是用这些包含有占位符的模板文件来构造新的工程文件。在下面的主题中,我们将讨论如何创建新的模板文件。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Visual 定制 AppWizard

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接