tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB2005でのアイコン変更について
記事No10022
投稿日: 2010/03/24(Wed) 20:36
投稿者ふつうのこ
以前同じ質問があったようで、以前の質問者はそれで解決したみたいですが、
私はそれを見ても解決しないので質問します。

"新しい項目の追加"でアイコンファイルを選択してアイコンを自分で描いて保存しました。
そしてフォームプロパティのアイコンをその保存したアイコンに変更したのです。
するとフォームプロパティの絵は変わっているのですが、デザイン画面のフォームはアイコンを
新規作成したときに示された最初の絵のまま変わらないのです。

エクスプローラーでも同じで、示されるのは最初の絵です。
ファイルのプロパティでは自分で描いた絵に変わっています。

以前の質問でローカルリソースがどうとか言われてましたが、解決方法が分かりません。
私にはアイコンエディタのバグとしか思えない。(^^;)
具体的な解決法はありませんか?

ちなみに環境は Win2000です。(確認しましたが WinXPでも同じのようです。)

[ツリー表示へ]
タイトルRe: VB2005でのアイコン変更について
記事No10023
投稿日: 2010/03/25(Thu) 10:23
投稿者魔界の仮面弁士
> "新しい項目の追加"でアイコンファイルを選択してアイコンを自分で描いて保存しました。
アイコンに格納されている色数と画像サイズは、どのように設定していますか?

VSのアイコンエディタの場合は、右クリックメニューの
 [新しいイメージ タイプ]
 [現在の アイコン イメージ タイプ]
などで設定される項目のことです。
描画したのは32ドットサイズだけで、16ドットサイズは初期画像のままだったりしませんか?


通常、ひとつのアイコンにはサイズおよび色数の異なる複数の画像が格納されており、
描画先に応じて、その中から適切な画像が選ばれる事になります。

適切な解像度が無い場合には、それに近い画像のうち、インデックスの若い画像が
減色されたり拡大縮小されて利用されるため、本来とは異なる画像が
表示されてしまう可能性があります。


対象 OS によって推奨される内容は異なりますが、フルセットの場合、ひとつのアイコンに
  16×16  - エクスプローラーの小さいアイコン
  24×24  - XP スタートメニュー右のサイズ
  32×32  - Win2000の "大きいアイコン"、Vista エクスプローラーの "中アイコン"など
  48×48  - ツールバー用の大きいアイコンなど
  64×64  - Vista クラシックモードなどで利用される
  96×96  - Vista エクスプローラーの "大アイコン"
 256×256 - Vista エクスプローラーの "特大アイコン"
といったサイズの画像が含まれることになります。

また、ツールバーやオーバーレイアイコンやバルーンアイコンなど、ごく限定的な
場面においては、これ以外にも 10×10、40×40、128×128 なども利用されます。
(これらの場合には ICO 形式以外のリソースが使われる事もありますが)


そして色数については、
 透明色1bit + 2bit(モノクロ2色)- 限定的(カーソルまたはWin16用アイコンで利用)
 透明色1bit + 4bit(16色パレット)
 透明色1bit + 8bit(256色パレット)
 透明色1bit + 24bit(フルカラー) - Win2000未満では利用できない
 透明度8bit + 24bit(フルカラー) - Win2000以下では利用できない(半透明対応アイコン)
がフルセットです。

Win2000 を対象とするのであれば、少なくとも 256色と16色、16×16と32×32の計4画像、
XP も含めるなら、半透明対応版や 24×24サイズもあった方が良いでしょう。

http://msdn.microsoft.com/ja-jp/library/ms997636.aspx
http://msdn.microsoft.com/ja-jp/library/aa511280.aspx

[ツリー表示へ]
タイトルRe^2: VB2005でのアイコン変更について
記事No10024
投稿日: 2010/03/28(Sun) 16:25
投稿者ふつうのこ
あぁ!ほんとですね、直りました!
アイコンファイルにこんな仕組みがあったとは知りませんでした。

どうもありがとうございました。(^^)

[ツリー表示へ]