CBitmapButtonについて – プログラミング – Home

通知
すべてクリア

[解決済] CBitmapButtonについて


Masa
 Masa
(@Masa)
ゲスト
結合: 25年前
投稿: 64
Topic starter  

こんばんは、Masaと言います。まだまだVC++初心の身です。
ダイアログ上にボタン(チェックボックスのボタンタイプ)を配置して、そのボタン
の上にビットマップ画像を出したいと思っているのですが、苦悩しています。

【ヘッダ】
CBitmap m_bmp001

【ソース・コンストラクタ】
m_bmp001.LoadBitmap(IDB_BITMAP1);

【ソース・InitDialog】
HBITMAP h_bmp001;
h_bmp001 = HBITMAP(m_bmp001);
m_ckcMenu001.SetBitmap(h_bmp001);

というコードで一応の実現はできましたが、これでは、画像変更の度にリソース変更、
コンパイルが必要です。
外部のファイル(例えば、c:\\windows\\001.bmp)を、ボタンに貼り付け、
仮に変更が発生したとしてもコンパイルなく変更できるようにするにはどうすれば
良いのでしょうか。

色々な掲示板やヘルプでCBitmapButtonに関する情報を入手でき、試行していますが、
今日段階ではまだ成功していません。

環境は、Win2000Pro、VC++6.0、MFC使用です。

皆様、ご教授の程よろしくお願いいたします。


引用未解決
トピックタグ
b.t.
 b.t.
(@b.t.)
ゲスト
結合: 22年前
投稿: 1
 

LoadImageっていうAPIがあります。
ファイルからビットマップハンドルを作成できます。


返信引用
Masa
 Masa
(@Masa)
ゲスト
結合: 25年前
投稿: 64
Topic starter  

BOOL CMenuSelect1::OnInitDialog()
{
CDialog::OnInitDialog();
HBITMAP h_bmp001;
TCHAR szWk[100];
_tcscpy(szWk,c:\\TestBmp.bmp);

// Bitmapをファイルから読み込む
h_bmp001 = (HBITMAP)LoadImage(NULL, szWk,
IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION | LR_LOADFROMFILE);

if (h_bmp001 == NULL){
MessageBox(_T(エラー),_T(エラー));
}else{
MessageBox(_T(ハンドルが取得できました。),_T(OK));

}
m_ckcMenu001.SetBitmap(h_bmp001);


返信引用
Masa
 Masa
(@Masa)
ゲスト
結合: 25年前
投稿: 64
Topic starter  


ごめんなさい、編集中に「送信」押してしまいました。

b.t. さん、ご回答ありがとうございます。
上記の様なソースで出来ました。
(ちょっとゴミが入っていますが、お許しください・・。)

まだまだの自分ではありますが、今後ともよろしくお願いいたします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました