如何在Visual Studio 2017中为图标分配字符串资源名称?
如何在Visual Studio中为图标分配字符串名称
嘿,我之前也踩过这个坑——VS的可视化资源编辑器确实把字符串名称的编辑入口藏得很深,但底层完全支持这个功能,毕竟它本质上还是依赖传统的资源编译器,只是没在UI里暴露出来。下面是具体的操作步骤:
步骤1:直接编辑资源脚本文件(.rc)
VS的资源系统核心是.rc脚本文件,可视化界面只是它的一层包装,我们需要手动修改这个文件:
- 在解决方案资源管理器里找到你的
.rc文件(通常和resource.h放在同一目录下) - 右键点击它,选择「查看代码」,或者在「打开方式」里选「文本编辑器」来打开
步骤2:修改图标的定义行
打开.rc文件后,找到对应图标的定义,它默认是数字ID的形式,大概长这样:
IDI_MAIN_ICON ICON "res\\MainIcon.ico"
你只需要把开头的数字ID替换成带双引号的字符串名称即可,比如改成:
"APP_MAIN_ICON" ICON "res\\MainIcon.ico"
步骤3:在代码中引用这个字符串名称
之后在加载图标的代码里,直接使用这个字符串就行,比如:
HICON hIcon = LoadIcon(hInstance, TEXT("APP_MAIN_ICON"));
如果担心手动输入字符串出错,也可以在resource.h里定义一个宏来统一管理:
#define APP_MAIN_ICON TEXT("APP_MAIN_ICON")
这样代码里就可以用APP_MAIN_ICON来引用,更规范也不容易出错。
一些注意事项
- 保存
.rc文件后,VS的资源编辑器可能需要重新加载才能识别这个字符串名称,有时候关闭再重新打开项目会更稳妥。 - 字符串名称尽量用大写字母加下划线的格式,避免空格和特殊字符,防止资源编译器解析出错。
- 至于属性面板里的「名称」字段为什么是灰色的?因为VS的可视化资源编辑器默认是围绕数字ID设计的工作流,它把字符串名称当成了进阶用法,所以没在UI里提供编辑入口,但底层的
rc.exe是完全支持的。
内容的提问来源于stack exchange,提问作者ScienceAmateur
相关产品推荐
相关产品推荐

