Rover12421's Blog

The End.

VS2008 自定义DialogBased Application向导<三>

第三步,制作对话框向导

这步就是让大家制作功能完善的自定义向导。
首先我们把第一节中制作的Win32DLG对话框项目的文件拷贝到自定义向导中。

image

打开Win32DLG项目目录,选择所有的头文件,源文件和资源文件,拷贝到向导项目下的\Templates\2052下面.

 image

然后在“模板文件”上点“右键–添加现有项”,把刚刚拷贝到\Templates\2052下的几个文件全部添加进来。

image

再打开Templates.inf文件,把添加的文件的文件名全部写到里面。为什么要写着里呢?这是我们使用向导新建项目所需要的文件,default.js通过调用AddFilesToCustomProj函数,把写在Templates.inf中的文件拷贝到新建的项目文件夹里。

image

现在我们来修改default.js文件。找到GetTargetName函数,修改它。

修改后的代码:

function GetTargetName(strName, strProjectName)
{
    try
    {
        // TODO: 基于模板文件名设置呈现文件的名称
        var strTarget = strName;

        if (strName == 'readme.txt')
            strTarget = 'ReadMe.txt';

        if (strName == 'sample.txt')
            strTarget = 'Sample.txt';

        if (strName == 'Win32DLG.cpp')
            strTarget = strProjectName + '.cpp';

        if (strName == 'Win32DLG.h')
            strTarget = strProjectName + '.h';

        if (strName == 'Win32DLG.ico')
            strTarget = strProjectName + '.ico';

        if (strName == 'Win32DLG.rc')
            strTarget = strProjectName + '.rc';

        return strTarget;
    }
    catch(e)
    {
        throw e;
    }
}

我们添加了4个if语句,用来把原来的文件名改成 “新建的项目名”+扩展名。这个规则可以自定义,但是一定要和后面的更改一致。说下这个函数的两个参数,strName就是传进来的文件名,strProjectName就是传进来的项目名。

接着往上找到AddFilters函数,修改如下:

function AddFilters(proj)
{
    try
    {
        // 将文件夹添加到项目
        //var strSrcFilter = wizard.FindSymbol('SOURCE_FILTER');
        //var group = proj.Object.AddFilter('源文件');
        //group.Filter = strSrcFilter;
        proj.Object.AddFilter('源文件').Filter = 'cpp;c';
        proj.Object.AddFilter('头文件').Filter = 'hpp;h';
        proj.Object.AddFilter('资源文件').Filter = 'ico;rc;bin';
    }
    catch(e)
    {
        throw e;
    }
}

AddFilter(‘’),是我们要添加到项目中显示的那个目录里面,比如源文件、Source File,可以自定义,但最好写成相对应的中文或英文,Filter后面的就是判断的扩展名。

差不多这样就修改完成了。可以先新建一个项目看看,看起来会没什么问题,但是编译会出错,这很正常,因为我们还有几个地方需要做小小的修改。我们需要把所有老的项目名命名的地方全部改成新建的项目名,用到就是[!output PROJECT_NAME]。一共有两个文件,一个是Win32DLG.cpp,一个是Win32DLG.rc

打开Win32DLG.cpp,找到

include “Win32DLG.h”

,修改成

include “[!output PROJECT_NAME].h”

Win32DLG.rc是资源文件,不能直接双击编辑,要在上面点“右键,查看代码”。

image

找到

IDI_WIN32DLG            ICON                    “Win32DLG.ico”

修改成

IDI_WIN32DLG            ICON                    “[!output PROJECT_NAME].ico”

还有一处

IDS_APP_TITLE           “Win32DLG”

IDC_WIN32DLG            “WIN32DLG”

对应的修改成

IDS_APP_TITLE           “[!output PROJECT_NAME]”

IDC_WIN32DLG            “[!output PROJECT_NAME]”

这样保存之后这个向导就算完成了。

大家可以自己用这个向导生成试试。

下一节讲讲怎么把这个向导给别人使用。

Comments