グループボックスにアイコン

[戻る]
チャイ 2008/09/05(金) 18:39:38
VC++ 2005 MFC ダイアログベースを使用しています。

グループボックスのキャプション部分をアイコンに置き換えようと思い、
グループボックスのプロパティをIcon → trueに設定し、
リソースエディタで作成したアイコンのハンドルをSetIconしたのですが
キャプションに設定したテキストが表示されるのみでアイコンが表示されません。

以下、OnInitDialog内
m_hIcon = ::LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON));
((CButton*)GetDlgItem(IDC_GROUPBOX))->SetIcon(m_hIcon);

単にグループボックスの文字を目立つようにしたいだけなので、
フォントをBOLDにするだけでも良いのですが、どなたかご教授願えませんでしょうか?
宜しくお願いします。

チャイ 2008/09/05(金) 18:55:30
あ、フォントはSetFontを実行するだけで解決できました。
アイコンのほうはやっぱり駄目なんでしょうか?

瀬戸っぷ [E-Mail] 2008/09/06(土) 00:24:00
グループボックスをメンバ変数にした場合、アイコンの設定ができました。

MFCアプリケーションで作成するとm_hIconには規定のアイコンがロード済みだったりしま
せんか?

CButton m_Group;

    DDX_Control(pDX, IDC_GROUP, m_Group);

    m_Group.SetIcon(m_hIcon);
です。
# リソースのプロパティは指定どおりです。

R32 2008/09/08(月) 13:40:22
以前やった事が有りますが、
ヘッダで
public:
  HICON  m_hMyIcon;
としておいて、

m_hMyIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
((CButton*)GetDlgItem(IDC_GROUPBOX))->SetIcon(m_hMyIcon);
で表示出来ると思います。

XP(SP2) VS2005 MFC

チャイ 2008/09/09(火) 14:55:43
[[解決]]
瀬戸っぷさん、R32さん
返信有難うございます。

返事が遅くなってすみませんm(__)m

R32さんの方法で無事アイコンを表示することができました。
原因は分かってませんが、::LoadIconで実行すると失敗するみたいです。
瀬戸っぷさんの方法でも試してみたのですが、何故かグループボックスの
メンバ変数を作成すると起動時にアプリケーションエラーで逝ってしまいます。。
(OnInitDialogまでは実行されるのですが、、)
目的は達成できたのでひとまず解決とします!!
有難うございました!

古いスレッドには追加発言できません。