CBitmapButtonについて

[戻る]
Masa 2003/09/12(金) 00:00:48
こんばんは、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. 2003/09/12(金) 00:48:10
LoadImageっていうAPIがあります。
ファイルからビットマップハンドルを作成できます。

Masa 2003/09/12(金) 23:38:26
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 2003/09/12(金) 23:40:30
[[解決]]
↑
ごめんなさい、編集中に「送信」押してしまいました。

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

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

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