2004年08月03日

ビットマップの表示

MFCでは外部のビットマップファイルを読み込むものが用意されてないし、DIB形式の表示すらない。
ってことで自分でDIB形式の構造体を用意して、DIBを表示するAPIを呼び出す必要があります。

1. ファイル読込
CFILE使ってオープンする場合。


pDib = (BYTE*)new char[file.GetLength()];
file.Read(pDib, file.GetLength());

pBmfh = (LPBITMAPFILEHEADER)pDib;
pBmih = (LPBITMAPINFOHEADER)(pDib + sizeof(BITMAPFILEHEADER));
pData = pDib + pBmfh->bfOffBits;

2. 表示
表示するAPIは他にもあるけど、hdcの取得にはGetSafeHdc()を使いましょう。


::StretchDIBits(pDC->GetSafeHdc(),
0, 0, pBmih->biWidth, pBmih->biHeight,
0, 0, pBmih->biWidth, pBmih->biHeight,
pData, (LPBITMAPINFO)pBmih, DIB_RGB_COLORS, SRCCOPY);

投稿者 toki : 22:01 | コメント (0) | トラックバック