?? axstudy.gb_
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>VB5 與 ActiveX 程式設(shè)計 ─ 進階研究</TITLE>
<META NAME="Author" CONTENT="">
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
</HEAD>
<BODY TEXT="#000080" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#008000" ALINK="#0000FF">
<CENTER><P><IMG SRC="title.gif" HEIGHT=33 WIDTH=349></P></CENTER>
<CENTER><P><IMG SRC="../g/study.gif" HEIGHT=23 WIDTH=95></P></CENTER>
<CENTER><P>
<HR WIDTH="100%"></P></CENTER>
<TABLE WIDTH="100%" >
<TR VALIGN=TOP>
<TD><IMG SRC="../BLUEBALL.gif" HEIGHT=15 WIDTH=21></TD>
<TD><B><FONT SIZE=+1>什麼是 .res 的「相關(guān)文件」?</FONT></B>
<HR WIDTH="100%"></TD>
</TR>
<TR VALIGN=TOP>
<TD></TD>
<TD>筆 者 在 08/11/97 介 紹 了 <A HREF="axmore.htm">VB 所 提 供 的 Calendar
控 制 元 件</A> , 在 此 一 控 制 元 件 的 原 始 程 式 碼 相 關(guān) 模 組 中
, 以 .res 為 副 檔 名 的「相 關(guān) 文 件」是 書 中 未 曾 介 紹 過 的 , 如
下 圖 , 這 到 底 是 怎 樣 的 模 組 呢 ? 又 有 什 麼 用 處 呢 ?
<CENTER><P><IMG SRC="res.gif" HEIGHT=205 WIDTH=232></P></CENTER>
<P>如 果 使 用 C/C++ 寫 過 Windows 的 程 式 , 對「資 源 檔」(resource
file)應(yīng) 該 不 陌 生 , Calendar 控 制 元 件 中 的 calendar.res 檔 案 ,
就 是 標 準 的 資 源 檔 。</P>
<H3><FONT COLOR="#800000">何 謂「資 源」?</FONT> </H3>
<P>對 於 使 用 C/C++ 所 開 發(fā) 的 Windows 程 式 而 言 , 字 串 、 BMP 圖
片 、 ICO 圖 示 、 功 能 表 的 定 義 、 交 談 窗 的 定 義 … 等 , 都 算
是 資 源 的 一 部 份 , 而 且 在 程 式 的 開 發(fā) 過 程 中 , 會 被 存 放
成「資 源 檔」。「資 源 檔」與「執(zhí) 行 檔」在 編 譯 階 段 是 兩 種 獨 立
的 檔 案 , 直 到 最 後 連 結(jié) 時 , 才 結(jié) 合 在 一 起 成 為 最 後 的 執(zhí)
行 檔 。 </P>
<P>為 什 麼 要 將 資 源 檔 與 執(zhí) 行 檔 分 開 呢 ? 舉 例 來 說 , 某 軟
體 預 定 發(fā) 行「中 文」及「英 文」兩 種 版 本 , 如 果 我 們 將 程 式 中
所 需 使 用 的「字 串」寫 死 在 程 式 里 面 , 那 麼 當 我 們 想 將 程
式 中 的 所 有「字 串」改 成 另 一 種 語 言 時 , 就 會 變 得 很 麻 煩
, 如 果 將 這 些 字 串 放 在 獨 立 的「資 源 檔」之 中 , 則 發(fā) 行 不
同 語 言 的 版 本 時 , 只 要 修 改「資 源 檔」即 可 , 而 不 必 動 到
任 何 程 式 碼 。 </P>
<P>資 料 檔 對 VB 程 式 來 說 , 還 有 另 一 項 好 處 , 假 設(shè) 我 們 在
程 式 中 會 使 用 到 許 多 圖 片 , 則 一 般 的 方 法 是 將 圖 片 設(shè) 定
給 Image 控 制 元 件 , 但 {控 制 元 件 +圖 片 }比 {圖 片 }本 身 要 浪
費 記 憶 體 , 若 使 用 資 源 檔 來 存 放 圖 片 , 則 可 節(jié) 省 {控 制 元
件 }部 分 的 記 憶 體 。 </P>
<H3><FONT COLOR="#800000">定 義 資 源 的 方 法</FONT> </H3>
<P>資 源 的 種 類 很 多 , 筆 者 在 此 只 說 明 最 為 常 用 的「字 串」及「圖
片」兩 種 , 請 參 考 以 下 的「字 串」定 義 , 其 中 定 義 了 三 個 字
串 , 而 字 串 的 編 號 分 別 是 100、 101、 及 200。 </P>
<UL>
<ADDRESS>STRINGTABLE </ADDRESS>
<ADDRESS>BEGIN </ADDRESS>
<UL>
<ADDRESS>100, "定義字串一" </ADDRESS>
<ADDRESS>101, "定義字串二" </ADDRESS>
<ADDRESS>200, "定義字串三" </ADDRESS>
</UL>
<ADDRESS>END </ADDRESS>
</UL>
<P>再 來 看 以 下 的「圖 片」定 義 , 其 中 定 義 了 兩 個 .ico 的 圖 示
檔 及 一 個 .bmp 的 圖 片 檔 , 而 兩 個 .ico 圖 示 分 別 取 名 為 sun
及 cloud、 .bmp 圖 片 則 取 名 為 logo。 </P>
<UL>
<ADDRESS>sun <FONT COLOR="#0000FF">ICON </FONT>sun.ico </ADDRESS>
<ADDRESS>cloud <FONT COLOR="#0000FF">ICON </FONT>cloud.ico </ADDRESS>
<ADDRESS>logo <FONT COLOR="#0000FF">BITMAP </FONT>wanglogo.bmp </ADDRESS>
</UL>
<P>以 上 的 定 義 只 要 使 用 文 字 編 輯 器 (例 如 記 事 本 程 式 )輸
入 成 為 文 字 檔 即 可 。 </P>
<H3><FONT COLOR="#800000">從「資 源 定 義 檔」到「資 源 檔」</FONT></H3>
<P>「 資 源 定 義 檔」是 給 我 們 看 的 , 它 必 須 編 譯 成「資 源 檔」,
才 能 夠 提 供 給 程 式 使 用 , 此 時 必 須 使 用「資 源 編 譯 器」。
</P>
<P>「 資 源 編 譯 器」程 式 可 以 在 VB5 光 碟 中 的 \Tools\Resource 目
錄 中 找 到 , 檔 案 名 稱 為 rc.exe, 這 是 在 DOS 模 式 底 下 執(zhí) 行 的
程 式 , 指 令 下 法 是 : </P>
<UL>
<P><FONT COLOR="#800000">rc 資源定義檔 </FONT></P>
</UL>
<P>若 執(zhí) 行 成 功 , 則 會 產(chǎn) 生 以 .res 為 副 檔 名 的「資 源 檔」。 </P>
<H3><FONT COLOR="#800000">如 何 在 VB 程 式 中 使 用「資 源 檔」的 資 源
</FONT></H3>
<P>假 設(shè) 已 有 一 XXX.res 資 源 檔 , 其 中 定 義 的 字 串 及 圖 片 如
下 : </P>
<UL>
<ADDRESS>STRINGTABLE </ADDRESS>
<ADDRESS>BEGIN </ADDRESS>
<UL>
<ADDRESS>100, "定義字串一" </ADDRESS>
<ADDRESS>101, "定義字串二" </ADDRESS>
<ADDRESS>200, "定義字串三" </ADDRESS>
</UL>
<ADDRESS>END </ADDRESS>
<ADDRESS>sun <FONT COLOR="#0000FF">ICON </FONT>sun.ico </ADDRESS>
<ADDRESS>cloud <FONT COLOR="#0000FF">ICON </FONT>cloud.ico </ADDRESS>
<ADDRESS>logo <FONT COLOR="#0000FF">BITMAP </FONT>wanglogo.bmp </ADDRESS>
</UL>
<P>則 使 用 這 些 資 源 的 過 程 如 下 : </P>
<UL>
<P><FONT COLOR="#800000">1.</FONT> 利 用 功 能 表 的「檔 案 /新 增 檔 案」將
XXX.res 加 入 於 專 案 中 。 </P>
<P><FONT COLOR="#800000">2.</FONT> 程 式 中 使 用「字 串」資 源 的 方 法
如 下 : </P>
<UL>
<ADDRESS><FONT COLOR="#800000">S = LoadResString(資源定義檔中的字串編號)</FONT></ADDRESS>
</UL>
<P>例 如「S = LoadResString(100)」 , 則 S 將 等 於 "定義字串一"。
</P>
<P><FONT COLOR="#800000">3.</FONT> 程 式 中 載 入 .ico 圖 示 及 .bmp 圖
片 的 方 法 分 別 如 下 : </P>
<UL>
<ADDRESS><FONT COLOR="#800000">Set pic = LoadResPicture(資源定義檔中的圖示名稱
, vbResIcon ) </FONT></ADDRESS>
<ADDRESS><FONT COLOR="#800000">Set pic = LoadResPicture(資源定義檔中的圖片名稱,
vbResBitmap)</FONT></ADDRESS>
</UL>
<P>例 如 : </P>
<UL>
<ADDRESS>Set Image1.Picture = LoadResPicture("sun", vbResIcon
) </ADDRESS>
<ADDRESS>Set Image2.Picture = LoadResPicture("logo", vbResBitmap
)</ADDRESS>
</UL>
</UL>
</TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -