下面介紹如何將光標和聲音作為資源編譯到可執行文件中,及其使用方法。
第一步:建立一個rc文件.
例如:zpg.rc,內容如下:
DemHint WAVE D:\Zpg2000\Res\DemHint.wav
PrintType BITMAP D:\Zpg2000\Res\PrintType.bmp
ArrowDown BITMAP D:\Zpg2000\Res\ArrowDown.bmp
ArrowUp BITMAP D:\Zpg2000\Res\ArrowUp.bmp
ZoomIn CURSOR D:\Zpg2000\Res\ZoomIn.cur
ZoomOut CURSOR D:\Zpg2000\Res\ZoomOut.cur
其中第一行為資源名稱,第二行為資源類型,第三行為一個存在的文件名.
第二步:編譯這個文件.
>BRCC32 zpg.rc
BRCC32.exe 在.../borland/C++ Builder6/bin/目錄下,
編譯後生成一個資源文件zpg.res
第三步:在程序中聲明對資源的使用
在程序中要用到這些資源的單元的#pragma resource "*.dfm"語句後前面添上
#pragma resource "zpg.res"
有時還需添上#pragma package(smart_init)
或在工程主CPP文件中添上
USERES("Zpg.res");
最後怎樣調用這個資源呢?看:
調用位圖:
Graphics::TBitmap *pBitmap=new Graphics::TBitmap;
pBitmap->LoadFromResourceName((unsigned int)HInstance,"PrintType");
播放聲音:
PlaySound("DemHint",HInstance,SND_RESOURCE);
改變光標:
Screen->Cursors[crZoomIn]=LoadCursor(HInstance,"ZoomIn");
//crZoomIn為自定義的光標常量,習慣上為>0的數,而系統定義的一般<0
PaintBox->Cursor=(TCursor)crZoomIn;
Application->ProcessMessages(); //確保光標立即改變
注意:
資源文件只在設計期有用,程序編譯後,這些資源就被編譯到可執行文件中了,所以程序分發時不必帶上資源文件。