牛、豚、鶏、どれか一つ食べられなくなるとしたら?

VisualC++6.0のダイアログベースのアプリにおいて、
フォーム上に配置したボタン上にビットマップを表示
させたいと思ってます。OnPaint()の中で、以下のコード
を書いたのですが、うまくいきません。

 CWnd* myWnd = GetDlgItem(IDC_BUTTON1);
 CDC* pDC = myWnd->GetDC();
 CDC myDC;
 CBitmap myBMP;
 myBMP.LoadBitmap(IDB_BITMAP);
 myDC.CreateCompatibleDC(pDC);
 CBitmap* oldBMP = myDC.SelectObject(&myBMP);
 pDC->BitBlt(0,0,100,100,&myDC,0,0,SRCCOPY);
 myDC.SelectObject(oldBMP);

ビットマップはちゃんと書かれてはいますが、その上にボタンが
描かれてしまうので、ビットマップが隠されてしまいます。

解決方法を教えてくださいますでしょうか。
よろしくお願いします。

% 絵をクリックするとアクションを起こすようにしたいので、
% ピクチャーボックスでも試してみました。これだとビット
% マップはちゃんと表示されますが、BN_CLICKEDを書いて
% ピクチャーボックスをクリックしてもOnPict()に処理が
% 移りません。

A 回答 (1件)

CBitmapButtonを使ってください。


webで検索すればいろいろと解説した記事が見つかります。
では、頑張ってください。
    • good
    • 0
この回答へのお礼

http://www.hi-ho.ne.jp/hawk/mfc0401.html
「動的なサブクラス化」
ボタンにビットマップ表示
ResourceViewによりダイアログに貼り付けたボタンにビットマップを表示ます。
ここにそのものズバリのコードが掲載されてました。
どうも、ありがとうございました。

お礼日時:2002/10/20 00:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!