社区
C++ Builder
帖子详情
如果加入了自己的.rc文件到project……
类库
2003-03-13 11:40:54
如果加入了自己的.rc文件到project,可执行文件的图标就会变没有,还有任务栏上的那个图标也没了,如果在.rc文件中加一个图标的话,可执行文件的图标就会用这新加的图标,但任务栏上还是没有,如果在.rc文件中加了2个或以上图标,就会随机选一个图标来用,好像不能自己指定,不知应该怎么解决?
...全文
229
4
打赏
收藏
如果加入了自己的.rc文件到project……
如果加入了自己的.rc文件到project,可执行文件的图标就会变没有,还有任务栏上的那个图标也没了,如果在.rc文件中加一个图标的话,可执行文件的图标就会用这新加的图标,但任务栏上还是没有,如果在.rc文件中加了2个或以上图标,就会随机选一个图标来用,好像不能自己指定,不知应该怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
myy
2003-03-14
打赏
举报
回复
rc 中的资源名的问题,project.res中的默认图标名为“MAINICON”,你的资源名字
比"MAINICON" 大(指字符串比较)就行了,比如"ZY_XXX",注意,改动后,最好把
原来的.rc生成的.res删掉,重新生成。
hzhxxx
2003-03-14
打赏
举报
回复
OK
ChengCheng2000
2003-03-14
打赏
举报
回复
阿波不错啊。
lanren_me
2003-03-14
打赏
举报
回复
新建一个*.rc文件,写内容如下:
giffile GIFFILE yourgiffile.gif
将此文件添加到工程。在程序中是用下面的语句将GIF解出来:
TResourceStream &rs = *new TResourceStream((int)HInstance, AnsiString("giffile "),"GIFFILE " ) ;
rs.SaveToFile( AnsiString(exefile) ) ;
delete &rs ;
Borland C++builder资源文件编辑
1 建立 现在从borland c++builder ->tools->Image Editor
Image Editor->File->New->Resource
在菜单中会出现resource 从new中选择资源分类有 bitmap icon cursor
若选择了bitmap 会出现选择位图的颜色和大小如果是从外部位图的话就要知道它的大小 其下会出现bitmap1 它就是位图文件名 选中他单击右键 edit 就进入绘图状态可以剪贴板中把外部位图考进来 然后就是保存了
2在c++builder 中Project->Add to Project… 装入资源文件
3使用 a. Graphics::TBitmap *Bitmap; //低颜色
Bitmap=new Graphics::Tbitmap();
Bitmap->Handle=LoadBitmap(int(hInstance),”Bitmap1”)
//256种颜色
b. LoadFromResourceName(int Instance,const AnsiString ResName);
LoadFromResourceID (int Instance,int ResID);
列如:
1 Graphics::TBitmap *Bitmap;
Bitmap=new Graphics::Tbitmap();
Bitmap->LoadFromResourceName(int (Hinstance),”picture1”);
2 Image1->Picture->Bitmap->LoadFromResourceName(int(HInstance),"Bitmap1");
注意 大 小 写 int(hInstance) int(HInstance)
手工操作
选用文本文件输入内容
Bitmap1 BITMAP “ C:\windows\bitmap1.bmp”
用brcc32.exe编译成资源文件 他在bin目录下 brcc32 –32 testwave.rc =>testwave.res
使用时在单元文件cpp中 # pragma resource “D:\\cbuilder\\picture.RES”
TForm1 *Form1;
注意
test.rc是一个纯文本文件,可用写字板建立,
但存盘时,文件名上要加上双引号即成 "test.rc",
否则会变成 wave.rc.txt
这种办法可把声音文件加到你的.exe中:
1.建立纯文本资源文件如wave.rc,内容如下:
ID_WAVE WAVE "C:\testwave.wav"
2.BCB中用Project->Add to Project 将test.rc
添加到你的工程中(即你的程序中);
3.在程序中:
#include "mmsystem.h"
PlaySound("ID_WAVE",HInstance, SND_RESOURCE);
Playsound( ) && rc
//---------------------------------------------------------------------------
void __fastcall TForm1::FromFileClick(TObject *Sender)
{
PlaySound("mail.wav", NULL, SND_FILENAME);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromFileMemoryClick(TObject *Sender)
{
TFileStream *WaveFile = new TFileStream("mail.wav", fmOpenRead);
BYTE *wavemem = new BYTE[WaveFile->Size + 1];
WaveFile->Read(wavemem, WaveFile->Size);
PlaySound(wavemem, NULL, SND_MEMORY);
delete[] wavemem;
delete WaveFile;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromResourceClick(TObject *Sender)
{
PlaySound("MAIL", HInstance, SND_RESOURCE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromResourceMemoryClick(TObject *Sender)//res 可以 参数一是名称,参数二是类型名称 也就是RC中的 testwave WAVE “ c:\testwave.wav” 可以是WAV ,WAV_DATA 任意的
{
HANDLE ResHandle;
BYTE *WavData;
ResHandle = FindResource(HInstance, "MAIL", "WAVE");
ResHandle = LoadResource(HInstance, ResHandle);
WavData = (unsigned char *)LockResource(ResHandle);
PlaySound(WavData, NULL, SND_MEMORY);
FreeResource(ResHandle);
}
如何把资源文件的文本读入到一个变量?
TResourceStream *rs=new TResourceStream((int)HInstance,"mydata","txt");
TStringList *ss=new TStringList;
ss->LoadFromStream(rs);
delete rs;
如何调用资源文件中res的jpeg、avi,wav,midi,mp3文件
Image中加入jpg可以用如下方法:
在文件头加入#include <jpeg.hpp>
在构造函数中加入
Image1->LoadFromResourceName(0, "JPEG");//你的资源名
Animate中加入avi可能也能用这种办法,不过没试过
BC++ Builder 3.0中各种资源的利用
烟台南大街建行科技部 李进
---- 在 编 写 程 序 的 过 程 中, 经 常 要 用 到 各 种 资 源。 比 如 说, 想 给 自 己 的 程 序 换 个 自 己 的 图 标, 使 用 一 些 活 泼 的 光 标 来 增 加 趣 味 性, 播 放 一 些 声 音 和 动 画 文 件, 或 者 使 用 别 人 写 好 的 程 序 来 实 现 某 个 功 能。 我 们 往 往 希 望 将 这 些 资 源 直 接 放 到EXE 文 件 中 以 形 成 一 个 单 独 的 可 执 行 文 件, 这 就 存 在 一 个 如 何 在 运 行 时 访 问 和 使 用 这 些 资 源 的 问 题。
---- 在 编 译 期 间, 这 就 要 用 到 一 种 文 件, 以 .rc 结 尾 的 资 源 定 义 文 件。
---- 一: RC 文 件
---- rc 文 件 是 个 文 本 文 件, 它 的 格 式 很 简 单, 按 如 下 格 式 定 义:
---- 资 源 标 识 符 资 源 类 型 资 源 的 路 径
---- 以 下 的 rc 文 件 定 义 了 一 个 声 音 资 源, 两 个 光 标 资 源, 三 个 图 标 资 源 和 一 个exe 文 件 资 源。
src1.rc:
S1 WAV wav1.Wav
C1 CURSOR cursor1.cur
C2 CURSOR cursor2.cur
I1 ICON icone1.ico
I2 ICON icone2.ico
I3 ICON icone3.ico
unzip EXEFILE pkunzip.exe
---- 你 可 以 将 写 好 的 rc 文 件 加 到 你 的 project( 项 目) 中。 你 也 可 以 手 工 将 其 编 译 为 供 程 序 直 接 使 用 的 二 进 制 资 源 文 件(.res 文 件)。 在BCB3.0 中, 可 以 使 用 命 令 行: brcc32 src1.rc src1.res 。
---- 二: 资 源 的 使 用
---- 下 面, 按 照 使 用 的 简 繁 程 度, 依 次 说 明 各 类 资 源 的 使 用 方 法。 需 要 说 明 的 是, 下 面 讲 述 的 使 用 方 法, 在 别 的 编 译 环 境 下(BC, VC 等) 也 是 一 样 的。
---- 1: 建 立 一 个 新 的 项 目
---- 启 动 BCB3.0, 选 FILE- >new- >Application 建 立 一 个 新 的 项 目。
---- 在 project- >Add to Project 中, 加 入 写 好 的 src1.rc 文 件。 当 然, 那 些 声 音、 光 标、 图 标 文 件 都 应 该 存 在。
---- 这 时, 我 们 有 了 一 个 空 的 窗 体(Form)。
---- 2: 能 够 利 用 windows API 函 数 直 接 访 问 的 资 源 有:
图 标 LoadIcon()
光 标 LoadCursor()
加 速 表 LoadAccelerators()
位 图 LoadBitmap()
菜 单 LoadMenu()
字 符 串 LoadString()
---- 前 五 个 API 函 数 使 用 方 法 都 一 样, 带 两 个 参 数。
---- 第 一 个 参 数 指 明 资 源 的 存 放 地 , 第 二 个 参 数 为 rc 文 件 中 资 源 的 标 识。
---- 字 符 串 LoadString 除 这 两 个 参 数 外, 还 有 两 个 参 数, 指 明 字 符 串 缓 冲 区 的 地 址 和 大 小。
---- 下 面 的 一 小 段 程 序 示 范 了 图 标 和 光 标 的 使 用。
---- 在 Form 上 放 置 一 个 按 纽, 在 其 OnClick 事 件 中 加 入 以 下 代 码:
void __fastcall TForm1::Button1Click(TObject *Sender) {
// 将光标形状改为自己定义的:
Screen- >Cursors[crDefault] = LoadCursor( HInstance, "C1");
// 将图标改为自己定义的:
Icon = new TIcon() ;
Icon- >Handle = LoadIcon(HInstance,"I1");
Application- >Icon = Icon ;
}
---- 其 中 的 HInstance 指 示 资 源 所 在 地 为 执 行 文 件。 编 译 执 行 后, 点 击 该 按 纽, 光 标 和 图 标 都 会 换 成 新 的。
---- 3: 能 够 通 过 windows API 使 用 的 资 源
---- 对 于 声 音、 动 画 等 文 件, 可 以 使 用 windows API 函 数 播 放。 但 是 不 象 上 面 几 种 资 源, 需 要 遵 循 一 定 的 步 骤。 如 下 所 示, 依 次 调 用 FindResource, LoadResource, LockResource 函 数, 来 播 放 一 个Wav 声 音 文 件。
---- ( 当 然, 独 立 的 声 音 文 件 可 以 在 运 行 时 直 接 播 放。 我 们 这 里 讨 论 的 是 将 wav 文 件 编 译 进 EXE 文 件 的 情 况)
---- 在 Form 上 放 置 第 二 个 按 纽, 在 其 OnClick 事 件 中 加 入 以 下 代 码:
void __fastcall TForm1::Button2Click(TObject *Sender)
//定义资源块
char *wav_handle ;
//装入 Wav文件
HRSRC h = FindResource(HInstance,"S1","WAV");
HGLOBAL h1 = LoadResource(HInstance, h);
wav_handle = (char *)LockResource(h1);
//播放 Wav文件。由于Wav文件装载在内存中,
sndPlaySound函数要用 SND_MEMORY参数
sndPlaySound(wav_handle, SND_MEMORY ¦ SND_SYNC);
}
---- 编 译 执 行 后, 点 击 该 按 纽, 会 播 放 一 次 声 音。
---- 对 于 动 画 等 文 件, 使 用 方 式 类 似Wav 文 件。( BCB 提 供 了 一 个TAnimate 控 件, 可 以 播 放 无 声 的Avi 文 件)
---- 4: 不 能 直 接 通 过 windows API 使 用 的 资 源
---- 此 种 资 源 不 能 够 由 windows API 直 接 访 问 和 执 行。 但 是, 我 们 可 以 用 一 种 变 通 的 方 法 来 使 用 它。
---- 下 面 示 范 如 何 使 用 pkunzip.exe, 思 路 如 下: 程 序 运
evc程序移植到VS2005
一、VS2005新建工程(跟要移植的工程同名,这样可以复制资源)。...在你的工程中添加另一个工程的
rc
文件
,这时资源视图中就会出现两个
rc
,从后加的
rc
中拷贝资源到你自己工程的
rc
中就可以了。 法2:vc
SUN Solaris 问题小结
我怎么找不到csh
rc
文件
呢,我刚刚安装完gcc,还有就是那个路径格式正确么? A: set path=($path /bin /usr/bin /usr/ucb ) .csh
rc
是隐藏
文件
,cd ;ls -a可以看到 11) Q: solaris 10 ,为什么进不了桌面? 我用...
为了引入module.css,我做了以下尝试……
但入口
文件
中导入了之前的模块(用于根据型号来判断),发现即使导入的模块没有用到,如果模块里导入了.less
文件
,则这些less样式仍然是对全局生效。经研究,决定引入module.css。 网上查到的用法基本都让修改项目...
Linux-权限管理(一)
ACL权限1、 权限概述2、 ...#dumpe2fs命令是查询指定分区详细
文件
系统信息的命令 选项: -h仅显示超级块中的信息,而不是显示磁盘块组的详细信息。 ………..省略部分输出………… Defaultdirectoryhash:half_md4 …...
极速SpringCloud开发-Dalston版本
启动两个会员服务工程,端口号分别为8762、8763,订单服务 使用负载均衡策略轮训到会员服务接口。 Ribbon介绍 ribbon是一个负载均衡客户端 类似nginx反向代理,可以很好的控制htt和tcp的一些行为。Feign默认...
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章