OnPaint() とOnDraw()の違いについて
OnPaint内に記述した下記コードでビットマップが描画されますが、OnDraw内だと描画されません。
どうしてなのか教えてください。
お願いします。
void CAbcView::OnPaint()
{
HBITMAP myDIB; // ビットマップのハンドル
HBITMAP oldDIB;
HDC hDC; // デバイスコンテキストのハンドル
HDC hCompatiDC; // メモリデバイスコンテキスト
PAINTSTRUCT ps; // クライアント領域の描画に使う情報を保持
if(!m_BmpInfo) return;
hDC = ::GetDC(m_hWnd);//これでもOK
::BeginPaint(m_hWnd,&ps);
hCompatiDC = ::CreateCompatibleDC(hDC);//hDC);
myDIB = ::CreateDIBitmap(hDC,&m_BmpInfo->bmiHeader,
CBM_INIT,m_BmpImage,m_BmpInfo,DIB_RGB_COLORS);
oldDIB=(HBITMAP)::SelectObject(hCompatiDC,myDIB);
BitBlt(hDC,5,25,m_BmpInfo->bmiHeader.biWidth,
m_BmpInfo->bmiHeader.biHeight,hCompatiDC,0,0,SRCCOPY);
略
}
環境 WIN98 VC++6.0 MFC にて
お礼
OnPaintは知りませんでした。ありがとうございます。