Tuesday, April 10, 2012

MFCのPicture Controlに画像を表示させる

MFCというのは、今でも計算速度や、リソースの使用については、マイクロソフトの他の開発環境よりも優れています。しかし、設計がいまいちなので、プログラマーにとっては、分かりにくい部分も多いです。以下は、MFCのPicture Controlに画像を表示させる例です。ちょっとした小技ではありますが、知らないと、実に戸惑ってしまいます。

CBitmap bmp; // 画像
BOOL bRet;

// 画像をピクチャーコントロールに設定
bRet = bmp.Attach((HBITMAP)::LoadImage(AfxGetInstanceHandle(), "c:\\temp\\t.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE) );

if (bRet == TRUE)
{
  CStatic* pictbox = (CStatic*)GetDlgItem(IDC_STATIC_PICTURE);
  pictbox->SetBitmap(bmp);
}

IDC_STATIC_PICTUREはPicture ControlのIDです。
但し、Picture Controlの「Type」を「ビットマップ」に設定しないと、何にも出で来ないです!実にひどい設計ですね。正確に言うと、分かりにくいです。めちゃくちゃ。

No comments:

Post a Comment