章.2節.ストリングテーブル(String Table)を編集してみよう

String Tableをご存知でしょうか?
たぶん,VC++を使い慣れている方なら知っていると思いますが,知らない人の方が多いと思います.

前節で,IDという「メニューバーのボタンを識別する印」いうものがありました.
しかし,IDはメニューバーのボタンだけが持つものではなく,
すべてのコントロール(エディットボックス,リストビュー,ツールバーのボタンなどなど)が一意に持つ値なのです.
また,コントロールを識別する印としての用途以外にも使ったりします(例外?)

今回はそのIDに関することを述べていきます.
前節同様に,[Resource View]のタグを押し,[String Table]というツリーを開き,下のウィンドウを表示してください.



すると,
ID,値,キャプションという属性を持つテーブル(表)が現れましたね.
ここで,テーブルの一行目を見てみると

IDS_APP_TITLE 103 sample

となっています.
この意味は,
IDS_APP_TITLEというIDは103という値であり,sampleというキャプション(説明文)をもつ
ということです.

つまり,IDは数値だったんですね.んで,IDはわけのわからん文字列なので,わかりやすい説明文を持ってるんです.

String Tableでは,IDを新しく作ったり,その値やキャプションを編集できるんです!!

プログラムの中で,IDは結構出てきますが,そのIDのキャプションはどうやって取り出すのでしょうか??
それには,
LoadString関数というAPIを用いて簡単にとりだすことができます.
今まで見てきたプログラムの中でも,WinMain関数の中で見つけることができます.

じゃあ,今回はIDS_APP_TITLEのキャプションを"sample(キャプション変更しました!)"と変えてみましょう.



そして,プログラムを実行してみましょう!!



おぉ!タイトルが変わりました!!
ってこと
は,IDS_APP_TITLEはタイトルを説明文として持つIDだったんだということがわかりました!!

WinMain関数の始めの方を見てみると
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

と,IDS_APP_TITLEからszTitleという配列にキャプションを取り出していることがわかります!


            

 

------------------------------------------------------------------------------------------------

当ページの一部または全部を転載、複写、複製することを禁じます。
また,当サイトを利用した結果に関するトラブル等は、一切関与いたしませんのでご容赦下さい。
Update 04/02/26 By 松本義弘

------------------------------------------------------------------------------------------------

デル4_120x60富士通ショッピングサイト WEB MART   NEC得選街   sotecロゴ88x31b   バナー 10000035