20070619
機能仕様書を従来のWordで書く方法よりも良い(工数的、分かり易さ)方法を考えていたが、時間が無くなってきたんでWordで文章にしてみたら、それはそれでモヤモヤしていた部分が明確になるなあ。
いろんなとこからリソースの追加ができる。色々試したところVSが落ちたりする・・・。
※今回はリソースをexeに埋め込む方法を採用。
MFCではツールバーにビットマップを設定する際に16x80(16x16の画像5個分)といった複数の画像を含むビットマップを使っていたが、それをVS2005で流用する方法を調べた。
VS2005でImageListに複数の画像を含むビットマップを設定する
正しい方法
- メニューから[プロジェクト]-[(プロジェクト名)のプロパティ]を選択。
- [リソース]タブをクリックする。
- [リソースの追加]から[既存のファイルの追加]を選択し、使用するビットマップを追加する。
- 必要であれば追加したビットマップの名前を変更する。今回は「test」という名前にしている。
追加したビットマップのプロパティで[Persistence]を「.resxに埋め込まれました」に変更する。←不要- コードでimageListにビットマップを設定し、toolStripButtonに適用してみた。
Bitmap bmp = Moc1.Properties.Resources.test; // プロジェクト名はMoc1 imageList1.Images.AddStrip(bmp); // リソースエディタであらかじめ追加しておいたimageList1にセット
toolStrip1.ImageList = imageList1; // リソースエディタであらかじめ追加しておいたtoolStripにセット
toolStripButton1.ImageIndex = 4; //4番目を使ってみる
誤った方法
※自分でやってうまくいった程度なので、問題が無いかは不明。いろんなとこからリソースの追加ができる。色々試したところVSが落ちたりする・・・。
※今回はリソースをexeに埋め込む方法を採用。
MFCではツールバーにビットマップを設定する際に16x80(16x16の画像5個分)といった複数の画像を含むビットマップを使っていたが、それをVS2005で流用する方法を調べた。
- ビットマップを利用したいフォームの.resxファイルをダブルクリックする。
- 開いたウィンドウの上部にある[リソースの追加]から[既存のファイルの追加]を選択し、使用するビットマップを追加する。←リソースエディタを更新(ボタン追加等)すると追加したリソースが消えてしまう。なんだこれ・・・。←プロジェクト全体のリソースに追加しないためなのだろう。
- 必要であれば追加したビットマップの名前を変更する。今回は「test」という名前にしている。
- 追加したビットマップのプロパティで[Persistence]を「.resxに埋め込まれました」に変更する。
- コードでimageListにビットマップを設定し、toolStripButtonに適用してみた。
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Viewer)); //自動生成されているDesignerのコードを参考にした
Bitmap bmp = ((System.Drawing.Bitmap)(resources.GetObject("test"))); //自動生成されているDesignerのコードを参考にした
imageList1.Images.AddStrip(bmp); //リソースエディタであらかじめ追加しておいたimageList1にセット
toolStrip1.ImageList = imageList1;
toolStripButton1.ImageIndex = 4; //4番目を使ってみる
2007年06月19日(火) 21:51:06 Modified by n0gam0ga