![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
今 WinXP VC++6.0 MFC のダイアログベースのソフトで
ダイアログリソース上のボタンのプロパティで
ビットマップが設定されている状態で
ボタンにビットマップ表示→アイコン表示を切替えようと思って
HICON CMyButton::SetIconID(UINT iconID)
{
//スタイル変更
UINT style=GetButtonStyle();
style&=~BS_BITMAP;
style|=BS_ICON;
SetButtonStyle(style);
//ボタンに画像を貼付る
HICON hIcon=AfxGetApp()->LoadIcon(iconID);
hIcon=SetIcon(hIcon);
}
としたのですがアイコン表示されませんでした。
アイコンかビットマップかどっちかに
すればいいのはわかってるのですが、
SetButtonStyleはCreate後にボタンスタイルを
替えられないんでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは。
XP上でVisual Studio 2008にて試してみましたが、無理なようです。
SetButtonStyle()メソッドの代わりにModifyStyle()メソッドを使用してみたところ、出来ました。
以下参考程度に。
HICON CMyButton::SetIconID(UINT iconID)
{
//スタイル変更
this->ModifyStyle(BS_BITMAP, BS_ICON);
//ボタンに画像を貼付る
HICON hIcon = AfxGetApp()->LoadIcon(iconID);
hIcon = this->SetIcon(hIcon);
return hIcon;
}
回答有難うございます。
CWndにModifyStyleという関数があったのですね。
VC++6.0 MFCでも
下記コードでリソース上でBS_BITMAPからもBS_TEXTからも動きました。
有難うございました。
HICON CMyButton::SetIconID(UINT iconID)
{
UINT style=GetButtonStyle();
//スタイルをアイコンにする
if(style&BS_BITMAP) //ビットマップの場合
{
HBITMAP hBitmap = GetBitmap();
if(hBitmap) ::DeleteObject(hBitmap);
ModifyStyle(BS_BITMAP,BS_ICON);
}
else if (style&BS_ICON)
;//アイコンの場合は何も変えない
else
ModifyStyle(BS_TEXT,BS_ICON);//アイコンでもビットマップでも無い場合
//ボタンに画像を貼付る
HICON hIcon=AfxGetApp()->LoadIcon(iconID);
hIcon=SetIcon(hIcon);
return hIcon;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
【お題】 『寿司』がテーマの本のタイトルを考えてください
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
-
4
アイコンをボタンに貼り付け
C言語・C++・C#
-
5
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
6
テキストボックスからフォーカス外す
C言語・C++・C#
-
7
ボタン上にビットマップ、アイコンを貼り付ける方法
C言語・C++・C#
-
8
最大化と最小化ボタン
C言語・C++・C#
-
9
MFCで画像を表示させているのですが、透過表示する方法がわかりません。
C言語・C++・C#
-
10
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
11
【VC++6.0 MFC】画像表示について
C言語・C++・C#
-
12
MFCでbitmapを背景にしてstaticテキストを透過させる方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リソースファイルとは・・・
-
C# ボタンコントロール内で文字...
-
コンボボックスのドロップダウ...
-
メッセージボックスを大きくす...
-
メッセージボックスのボタン文...
-
エディットボックスの処理で画...
-
'int' から 'LPCSTR' に変換で...
-
【MFC】sleep関数を用いたモー...
-
ボタンの表示の色、フォントを...
-
ダイアログボックスで指定した...
-
別のアプリから表示されたダイ...
-
ダイアログの表示位置の保存
-
Microsoft Visual C++ 6.0でダ...
-
マウスポインタの画像を変更したい
-
confirmダイアログの表示文字に...
-
ダイアログ間のメッセージの送...
-
エディットコントロールの色の...
-
VC(Ver6.0)でダイアログサイズ...
-
MFC ポップアップメニューのチ...
-
エクセル VBA 「Sub Auto_Open(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
ボタンの表示の色、フォントを...
-
フォーム上のリストボックスに...
-
ダイアログの一部を半透明化す...
-
C# ボタンコントロール内で文字...
-
'int' から 'LPCSTR' に変換で...
-
ダイアログの上のテキストボッ...
-
メッセージボックスのボタン文...
-
コンボボックスのドロップダウ...
-
リソースファイルとは・・・
-
ダイアログの表示位置の保存
-
vbscriptで、ファイル選択ダイ...
-
ダイアログボックスで指定した...
-
マウスポインタの画像を変更したい
-
MFC ポップアップメニューのチ...
-
ダイアログのボタンが押された...
-
ボタンの配置を変更したい
-
MFCダイアログボックスを最前面...
-
エディットコントロールの色の...
-
VC(Ver6.0)でダイアログサイズ...
おすすめ情報