ResHacker使用小解

本文介绍如何使用ResHacker工具定制Windows对话框,包括修改文字、位图、图标、按钮、AVI动画及进度条等内容,提供具体控件代码示例。
我们随便用ResHacker打开一个对话框,比如我修改的下载对话框:

首先这几行:

这里的是此对话框的编号,标题,使用语言,使用字体等参数。。。

对话框常见控件
接下来的两个大括号“{}”中括起来的就是对话框的控件了,每一个控件对应一行

控件有其基本格式:
CONTROL “控件内容”, 控件所对应的编号, 控件类型, 控件参数, X方向位置, Y方向位置, 长度, 宽度

基本操作:

改变位置和大小:其中位置和大小是根据自己的需要修改的,可以直接修改数值,或者在对话框演示窗口中直接拖动,有一些控件像AVI动画等在演示窗口中是隐藏不显示的,点击会出现大小虚框,就可以拖动了。。。

添加控件:需要加上一个控件可在“{}”中加上一行对应类型的代码,每个类型的代码格式在下面分类说明,直接复制格式代码再根据自己需要修改即可(一般添加的是文字、位图、图标或AVI动画代码。而按钮、进度条和代码一般只做修改不做添加。。。添加的话需要另外修改其他的对应复杂一些的代码。。。)

删除控件:直接删除对应的那一行代码即可

第2项控件的对应编号如果没有特殊需要(比如添加图标)最好不要改动。


以下就我知道的几种常见控件修改分类说明(所有的控件参数见文章最后的控件参数表):

1.文字信息的修改

这是最常见的一种控件了。。。
格式:

CONTROL "文件大小未知", 4361, STATIC, SS_SIMPLE | SS_NOPREFIX | WS_CHILD, 30, 40, 190, 20
修改说明:
第1项,控件内容就是"文件大小未知" 引号里的就是提示的文字内容,可以根据自己的需要改成自己想要显示的文字信息。

2.位图信息的修改

位图信息也是我们经常改动或加上的。。如FlyakiteOS里就加上了不少。。为我们的对话框增光添彩。。

格式:
CONTROL 2, 0, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 261, 12, 85, 85

修改说明:
第1项,控件内容(格式中的就是2了)是对应的Bitmap位图资源组里的图片编号,如果你想新加入一个位图到对话框,可以在Bitmap位图资源组里新加入你所要添加的位图,编号可自己设定但不可与现有位图编号重复,然后在对话框里把上面的第1项控件内容改为你新加入位图的编号即可。。。
要注意的是添加的位图要用iconworkshop另存为“带透明的BMP位图”,这样编译保存以后对话框显示出来的就是透明的

3.图标信息的修改

图标在对话框中的修改方式与位图大致相同

格式:
CONTROL 4102, 4102, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 7, 21, 20

修改说明:
第1项控件内容和第2项控件编号(格式中都是4102)一般都是对应的Icon Group图标资源组的里的图标编号,如果你想新加入一个图标到对话框,可以在Icon Group图标资源组里新加入你所要添加的图标,编号可自己设定但不可与现有图标编号重复,然后在对话框里把上面的第1项控件内容和第2项控件编号改为你新加入图标的编号即可。。。

4.按钮信息的修改

按钮一般对应的按钮功能是在源程序设计的时候就制定好了的。。所以一般只修改位置和大小,不改内容,也不添加按钮。。

格式: CONTROL "打开(&O)", 4377, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 30, 100, 60, 14

修改说明:按照基本操作中的位置和大小的修改方法修改。。

5.AVI动画的修改

AVI动画是比较麻烦的一项,首先你要自己用flash、fireworks、ImageReady、Photoimpact等动画制作工具制作好gif动画,再用Movie Gear转成AVI动画导入AVI资源组,AVI的制作参见可乐的教程: http://www.pcpchina.com/bbs/index.php?showtopic=64

格式: CONTROL "", 4353, "SysAnimate32", ACS_TRANSPARENT | ACS_AUTOPLAY | ACS_TIMER | WS_CHILD | WS_VISIBLE, 198, 11, 85, 85

修改说明:
AVI动画代码的最后两个也就是AVI动画长和宽的代码,要和你的实际AVI大小相同,要注意的是,这两个数并不是10进制数好像,或者是需要换算的。。。比如格式代码中的85 ,85对应的AVI大小是128*128

不过有一个偷懒的办法。。。不用换算。我是试了128*128的 位图放进去之后自动的调整为了85,85。。。。AVI我也试着用85 , 85,试出来确实没错128*128大小对应的就是85,85。。。其他的可以照搬。。。把你想改的AVI大小放一个同样大小的位图进去,会自动换算成控件格式的大小。。。

系统的一些AVI动画位置(注意AVI动画的上面的格式代码只供识别代码类型是AVI动画。。。修改的时候要用原代码改大小和位置,不可复制格式代码,否则会由于编号不同程序会找不到对应的动画):

下载动画:shdoclc.dll中的4352对话框,对应的是shdocvw.dll的AVI动画256号
网页下载动画:shdoclc.dll中的13136号对话框,对应的也是shdocvw.dll的AVI动画256号

以下动画共用shell32.dll中的1020号对话框
移动文件:shell32.dllAVI动画160号
复制文件:shell32.dllAVI动画161号
将文件移动到回收站:shell32.dllAVI动画162号-
清空回收站:shell32.dllAVI动画163号
删除文件:shell32.dll AVI动画164号
属性转换:shell32.dll AVI动画165号

另外补上AVI动画的添加方法,就是在本来没有AVI动画的对话框里添加AVI

首先当然还是要按上面的方法把你要加的AVI做好。。。然后导入你所要添加的对话框所在的文件中,导入的时候AVI号码自己定,但不可以和现有AVI号码相同,比如你设了一个号码为1。。。。那么在你要加的对话框的代码中加入下面这一行代码: CONTROL "#1", 12287, "SysAnimate32", ACS_CENTER | ACS_AUTOPLAY | WS_CHILD | WS_VISIBLE, 176, 17, 85, 85

其中控件内容,也就是“#1"里面,#号后面的数字就是你先前设定的avi号码了。。。。
6.进度条的修改


竖式进度条:

进度条也是windows对话框中经常出现的,除了我们常见的windows进度条以外,还有软件也有,例如winrar压缩的进度条等。。。

格式(进度由左往右增加): CONTROL "", 13137, "msctls_progress32", WS_CHILD | WS_VISIBLE, 4, 4, 20, 97

修改说明:Windows默认的进度条的进度是从左往右增加的,如以上格式代码就是,不少朋友喜欢把进度条改成从下往上增加的,也就是所谓的竖式进度条,在参数前面加上 PBS_SMOOTH | PBS_VERTICAL |即可注意改完后要对应的改变进度条控件的大小和位置

例如把以上格式代码中的变成进度从下往上的: CONTROL "", 13137, "msctls_progress32", PBS_SMOOTH | PBS_VERTICAL | WS_CHILD | WS_VISIBLE, 4, 4, 20, 97



暂时就写以上常见的6种,以后再补充其他的。。。
另外。。在所有的控件都修改完成之后养成一个好习惯,在演示窗口中把每个控件都点击一下看看大小虚框有没有盖住其他的控件,如果有就把大小调整一下再编译。。遗忘这一点可能会引起控件被盖住的错位问题

控件参数表
所谓控件参数基本上常见的就是Visual C++编程 MFC中的CStatic样式

基本的如下表:
CStatic样式
  所有的控制都有各种显示样式。样式是在用Create函数建立控制时传递给它的dwStyle参数所决定的。对CStatic有效的样式简介如下:

从CWnd继承来的样式:
  WS_CHILD CStatic所必须的。
  WS_VISIBLE 表示该控制对用户应该是可见的。
  WS_DISABLED 表示该控制拒绝接受用户事件。
  WS_BORDER 控制的文本区域带有边框。
CStatic固有的样式:
  SS_BLACKFRAME 该控制区域以矩形边界显示。颜色与窗口框架相同。
  SS_BLACKRECT ? 该控制以填充的矩形显示。颜色与当前的窗口框架相同。
  SS_CENTER 文本居中。
  SS_GRAYFRAME 控制以矩形边框方式显示。颜色与当前桌面相同。
  SS_GRAYRECT 该控制以填充的矩形显示。颜色与当前的桌面相同。
  SS_ICON 控制以图标形式显示。文本作为图标在资源文件的名称。rect参数只控制位置。
  SS_LEFT 文本居左显示。文字可回绕。
  SS_LEFTNOWORDWRAP 文本居左显示。多余的文字被剪裁。
  SS_NOPREFIX 表示字符串中的"&"字符不表示为加速前缀。
  SS_RIGHT 文本居右显示。文字可回绕。
  SS_SIMPLE 只简单的显示一行文本。任何CTLCOLOR信息都被其父窗口忽略。
  SS_USERITEM 用户定义项。
  SS_WHITEFRAME 控制以矩形边框方式显示。颜色与当前窗口背景颜色相同。
  SS_WHITERECT 控制以填充矩形方式显示。颜色与当前窗口背景颜色相同。
  
这些常数中,“SS”(Static Style)开头的表示只能用于CStatic控制。以“WS”(Window Style)开头的常数表示可适用于所有窗口,它们定义在CWnd对象中。CWnd中还有很多以“WS”样式常数。你可以在MFC文档中的CWnd::Create函数中找到它们。上面的四种是只用于CStatic对象的。
  CStatic对象至少要带有两个样式:WS_CHILD和WS_VISIBLE。该控制必须作为另一窗口的子窗口来建立。如果不使用WS_VISIBLE,则所建立的控制是看不见的。WS_DISABLED控制着标签对事件的响应,因为CStatic不接收键盘或鼠标事件,所以使用该项是多余的。
  所有的其它样式选项都是可选的,它们控制着标签的外观。在CStatic::Create函数中使用这些控制,可以控制CStatic在屏幕上的显示。
Resource Hacker?- Version 3.4.0 Resource Hacker 可以被用来: 1. 查看 Win32 可执行和相关文件的资源 (*.exe, *.dll, *.cpl, *.ocx),在已编译和反编译的格式下都可以。 2. 提取 (保存) 资源到文件 (*.res) 格式,作为二进制,或作为反编过的译资源脚本或图像。 图标,位图,指针,菜单,对话,字符串表,消息表,加速器,Borland 窗体和版本信息资源都可以被完整地反编译为他们各自的格式,不论是作为图像或 *.rc 文本文件。 3. 修改 (替换) 可执行文件的资源。 图像资源 (图标,指针和位图) 可以被相应的图像文件 (*.ico, *.cur, *.bmp),*.res 文件,甚至另一个 *.exe 文件所替换。 对话,菜单,字符串表,加速器和消息表资源脚本 (以及 Borland 窗体) 可以通过使用内部资源脚本编辑器被编辑和重新编译。 资源也可以被一个 *.res 文件所替换,只要替换的资源与它是同一类型并且有相同的名称。 4. 添加 新的资源到可执行文件。 允许一个程序支持多种语言,或者添加一个自定义图标或位图 (公司的标识等) 到程序的对话中。 5. 删除 资源。大多数编译器添加了应用程序永远不会用到的资源到应用程序中。删除这些不使用的资源可以减小一个应用程序的大小。 ---------------------------------------------- 最新更改: ---------------------------------------------- 2003-06-26 * 为了使用更方便,所有菜单都已经支持快捷键。 * 修正以前汉化前辈在插入控件时没法显示部件控件的错误。
ResHacker(软件版权修改器) 脚本说明: ************************************************************************************** 1 VERSIONINFO FILEVERSION 2,1,0,0 PRODUCTVERSION 2,1,0,0 FILEOS 0x4 FILETYPE 0x1 { BLOCK "StringFileInfo" { BLOCK "080404B0" { VALUE "FileVersion", "2, 1, 0, 0" //文件版本 VALUE "FileDescription", "HistoryClear" //描述 VALUE "LegalCopyright", "版权所有 (C) 2006" //版权 VALUE "Comments", "bbbbbbbb" //备注 VALUE "ProductVersion", "2, 1, 0, 0" //产品版本 VALUE "ProductName", "HistoryClear 软件" //产品名称 VALUE "PrivateBuild", "ssssssss" //个人用内部版本说明 VALUE "CompanyName", "ggggggg" //公司 VALUE "LegalTrademarks", "hhhhhhhh" //合法商标 VALUE "InternalName", "HistoryClear 应用程序" //内部名称 VALUE "SpecialBuild", "tttttttt" //特殊内部版本说明 VALUE "OriginalFilename", "HistoryClear.EXE" //源文件名 } } BLOCK "VarFileInfo" { VALUE "Translation", 0x0804 0x04B0 } } ************************************************************************************** VALUE "FileVersion", "1,0,0,0" //文件版本 VALUE "FileDescription", "快速关机,3秒钟内关机!" //描述 VALUE "LegalCopyright", "版权所有 (C) 2008" //版权 VALUE "ProductVersion", "1,0,0,0" //产品版本 VALUE "ProductName", "shutdown 软件" //产品名称 VALUE "CompanyName", "wwwckq.51.net software" //公司 VALUE "InternalName", "shutdown 应用程序" //内部名称 VALUE "OriginalFilename", "shutdown.exe" //源文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值