首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.3.2  所见即所得的资源编辑器

资源脚本文件中一个典型的对话框定义是这样的:

DLG_MAIN    DIALOG 0, 0, 176, 66

STYLE       DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION     "对话框模板"

FONT        9, "宋体"

{

    DEFPUSHBUTTON "退出",IDOK,120,46,50,14

    CONTROL"",-1,"Static",SS_ETCHEDHORZ|WS_CHILD|WS_VISIBLE,7,38,164,2

}

第一句定义了对话框的左上角坐标为(0,0),大小为(176,66),中间的DEFPUSHBUTTON定义了一个位置为(120,46),大小为(50,14)的按钮,看到这些定义后脑袋里要浮现一个正确的对话框是很不容易的,只能在纸上打格子画出来后才能明白它的模样,所以直接用文本编辑器书写资源脚本文件有诸多不便,就像谁都不会用db语句一个个像素地定义bmp位图一样,写资源脚本同样需要像图形编辑软件一样所见即所得的工具。Borland公司的Resource Workshop和VC环境内带的资源编辑器就是这样的工具。

1. Resource Workshop资源编辑器

Resource Workshop是Borland公司出品的资源编辑器,它是当做Borland C++的一个组成部分发布的,并不是一个单独的产品,但由于它使用方便,应用一直比较广泛,于是有人将它单独分离出来做成一个软件包下载,Resource Workshop的初始版本不是双字节版,所以无法支持中文,在编辑的时候输入中文,存盘后会变成乱码,非常不便,还是有“好事者”将它修改成了双字节版供人下载,在网上搜寻下载的时候要注意版本区别。

同样是上面举例的对话框,在Resource Workshop中的编辑界面如图2.3所示,是不是形象多了?Resource Workshop不但支持资源脚本文件*.rc,同时支持资源文件*.res,读者可以用它打开*.res文件,编辑后存为*.rc文件,同时也可以直接用它编辑*.rc文件且生成*.res文件,这样就可以免去用资源编译器编译脚本文件的步骤。

图2.3  Resource Workshop的使用界面

奇怪的是,BRCC32.exe不需要预定义头文件的支持,而同是Borland公司的Resource Workshop却没有内置窗口风格等定义值,所以在使用中需要Resource.h头文件的支持,并且,Resource.h文件必须和 .rc文件在同一个目录中,所以用它来编辑资源脚本文件的时候要注意拷贝一份Resource.h文件,当然,如果直接用它来编辑资源文件*.res则不需要头文件。

Resource Workshop的缺点是版本比较老,毕竟它是随早期的Borland C++发布的,所以它不支持一些新的特征,如窗口的扩展风格等,如果在 .rc文件的定义中用到这些风格,Resource Workshop会提示不认识这些关键字,用它打开含扩展风格对话框的 .res文件,则会提示一个Unexpected file format错误。

2. 用Visual C++编辑资源

Visual C++本身是一个很大的软件包,里面集成了资源编辑功能,它也是所见即所得的编辑工具,并且支持最新的资源特征,如最新的对话框风格和一些新的控件等,同时它是双字节版本,不必担心乱码问题,Visual C++也支持编辑脚本文件*.rc和资源文件*.res,可以在两者之间互相转换。单从功能方面考虑,用Visual C++来编辑资源是一个很好的选择。Visual C++的资源编辑界面如图2.4所示。

图2.4  Visual C++的资源编辑界面

使用Visual C++做资源编辑器的一个显著缺点就是它的规模,资源编辑的功能是集成在IDE环境中的,要使用它就要安装整个Visual C++软件包,至少需要几百MB的空间!而Resource Workshop只有几MB,MASM32软件包也只有不到10MB,为了一个资源编辑功能用去几百MB的空间似乎有点好笑。

另外,用Visual C++生成的.rc文件总是包含了很多VC自己的头文件,如果将它们去掉,下次就无法再用VC打开;如果不去掉这些多余的信息,那么用Rc.exe编译的时候就要把所有需要的头文件拷贝过来,将源程序和别人交流的时候,别人要编译这个资源脚本也必须到VC中去找到这些头文件。

但Visual C++毕竟是个功能强大的工具,建议读者还是使用Visual C++来编辑资源,存盘的时候直接存为*.res文件,这样可以省去编译资源的步骤。到最后调试完成的时候或者需要交流的时候,可以保存一份 .rc文件并将文件中VC使用的多余内容去掉,整理成Rc.exe可以编译的格式。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论