ボタンコントロール上にビットマップを表示するには?

解決


田中  2009-08-13 04:25:22  No: 70791

winXP + VC++6.0(MFC)にてプログラムしています。
ダイアログに貼り付けたボタンコントロールに画像を表示させたく、以下の
ような手順で実行しました。
ビルドエラーは表示されないのですが、実行時に当該ボタン上に画像が表示
されません。
いろいろサイトを検索しサンプルコード等を自分用に読みかえて試しても見
たのですが、うまくいきません。原因にお気づきの点がありましたらアドバ
イスをお願いいたします。

//IDB_BITMAP1はビットマップリソースのIDです。
//m_Button1はクラスウィザードで当該ボタンコントロールに設定したコント
  ロールメンバ変数です。
//当該ボタンコントロールのプロパティで、「ビットマップ」にチェックを入
  れています。

以下のコードをダイアログのOnInitDialogハンドラ内に記述しています。

  CBitmap myBmp;
  myBmp.LoadBitmap(IDB_BITMAP1);
  HBITMAP hBmp = myBmp;
  m_Button1.SetBitmap(hBmp);

よろしくお願いいたします。


みい  2009-08-13 06:36:07  No: 70792

おそらくOnInitDialogを抜けるとビットマップを読み込んだ変数が破棄されるのが原因ですね。

ヘッダーファイルに移してみてください。


田中  2009-08-13 07:35:53  No: 70793

みいさん、Resをありがとうございます。

ご指摘のとおりにビットマップ用の変数をグローバル化した結果、拍子抜け
するほどアッサリと表示されました。

どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加