複数のイメージが設定されているアイコンリソースを表示切替するには?


ccgrape  2010-09-22 20:29:56  No: 71945  IP: [192.*.*.*]

【現状】
    現在、ダイアログベースアプリにて
    ダイアログ上に
    ピクチャコントロール(IDC_STATIC_PIC)
    と
    ボタン(IDC_BUTTON1)を配置。
    ボタンを押したときに以下のコードで
    ピクチャコントロールに
    アイコンリソース(IDI_UNQICON)を表示しています。

    void CBmptestDlg::OnButton1()
    {
     HICON hIcon;
        hIcon = ::LoadIcon (AfxGetResourceHandle(), 
                                  MAKEINTRESOURCE(IDI_UNQICON));
        ((CStatic*)GetDlgItem(IDC_STATIC_PIC))->SetIcon(hIcon);
    }

【質問】
  VisualStudioのリソース編集画面で、
  アイコンリソースに複数のイメージを設定できると思います。
 (IDR_MAINFRAMEには"標準(32x32)"と"スモール (16x16)"が設定されています。)

  IDI_UNQICONに同じサイズで違う絵柄のアイコンイメージを設定した場合、
  条件により表示する図柄を切り換えるにはどうしたらよいのでしょうか?

  やりたいことは
  "IDI_UNQICON"に32x32サイズの魚の絵柄と犬の絵柄を設定した場合、
  チェックボックスの状態により
  魚を表示するか犬を表示するかをプログラム上から指定したいです。

【環境】
     VC++6.0
     Win2000


以上、ご存じの方いらっしゃいましたら
アドバイス頂けませんでしょうか。
よろしくお願いします。

編集 削除
fuku  2010-09-23 01:53:38  No: 71946  IP: [192.*.*.*]

そもそも、複数の同じ大きさ、色数を持つアイコンリソース自体が作成できますか?
VC2008で試した限りでは、同じ設定のアイコンを一つのアイコンリソース内に追加すること自体が拒否されました。

チェックボックスで切り替えたいというだけなら、
アイコンリソースを二つ登録(IDI_UNQICONとIDI_UNQICON2など)しておき、
状況に応じて設定するアイコンを変更すればいいのではないでしょうか?

編集 削除