1

これは、stackoverflow に関する私の最初の質問です。すべてを正しく行うことを願っています:S

私のタイトルで説明されているように、私はmfcを使用してビジュアルスタジオ(2012)プロジェクトに取り組んでいます。デザイン ビューでダイアログに挿入されたビットマップを cbutton に追加しようとしました。

これについて私が読んだすべての投稿では、 setBitmap または sendMessage を使用してそうするように説明しています。私は常に、ダイアログの onInit() 関数でこれを実行しようとします。次のように setBitmap() を使用する (しようとする) 場合:

m_backButton.Attach (LoadBitmap (AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BACK_BUTTON))); //m_backButton is a private CBitmap member of my dialog
CButton* pButton = (CButton* )GetDlgItem(IDC_BUTTON1);
pButton->SetBitmap(m_backButton);

IntelliSense エラーが発生します。

IntelliSense: クラス "CButton" にはメンバー "setBitmap" がありません

別の試みは、sendMessage を使用することでした。

m_backButton.Attach (LoadBitmap (AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BACK_BUTTON)));
CButton* pButton = (CButton* )GetDlgItem(IDC_BUTTON1);  
HBITMAP hBitmap = (HBITMAP)m_backButton;
pButton->SendMessage(BM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)hBitmap); 

まず、別の IntelliSense エラーが発生しました。

IntelliSense: 識別子 "BM_SETIMAGE" は定義されていません

別の投稿で読んだように、「BM_SETIMAGE」を自分で定義しました:

#define BM_SETIMAGE 0x00F7

これでコードはコンパイルできますが、ボタンにはまだビットマップが表示されません...インターネットのすべての投稿がこの2つのソリューションのいずれかを使用しているため、私は無力です. 誰が何が悪いのか考えていますか?そうでない場合は、読んでくれてありがとう:)

4

1 に答える 1