我想在按下按钮后在对话框上画幅位图,在按钮的OnClick事件中使用如下代码:
CPaintDC dc(this);
CBitmap Bmap;
b.LoadBitmap(IDB_BAMP);
dc.SelectObject(&Bmap);
dc.BitBlt(0,0,20,20,&dc,0,0,SRCCOPY);
但是并没有显示位图,请问为什么?
谢谢!
CPaintDC dc(this);
CBitmap Bmap;
b.LoadBitmap(IDB_BAMP);
dc.SelectObject(&Bmap);
dc.BitBlt(0,0,20,20,&dc,0,0,SRCCOPY);
但是并没有显示位图,请问为什么?
谢谢!
void DRAW_WINDOW_BITMAP( HWND &hWnd, CString strPathName )
{
CBitmap * m_pBmp = NULL;
BITMAP bm;
CDC dcMem;
CDC * pDC = NULL; if ( IsFileExist( strPathName ) == FALSE )
{
// 需绘制的位图文件不存在,直接退出
PrintMessage( _T("需绘制的位图文件不存在\n") );
return;
} pDC = new CDC;
HDC hDc = ::GetDC( hWnd );
pDC = CDC::FromHandle( hDc );
// 装载图片
HBITMAP hBitmap = (HBITMAP)::LoadImage ( AfxGetInstanceHandle(), strPathName, \
IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE | \
LR_DEFAULTSIZE ); ASSERT( hBitmap );
m_pBmp = new CBitmap();
m_pBmp->Attach( hBitmap ); m_pBmp->GetObject( sizeof(bm), (LPVOID)&bm);
dcMem.CreateCompatibleDC(pDC);
CBitmap * pBmpOld = (CBitmap *)dcMem.SelectObject( m_pBmp );
CRect rect;
::GetWindowRect( hWnd, rect ); // 将位图文件缩放绘制窗体中
pDC->StretchBlt( 0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bm.bmWidth, \
bm.bmHeight, SRCCOPY ); dcMem.SelectObject (pBmpOld ); pDC = NULL;
delete pDC;
delete m_pBmp;
m_pBmp = NULL;
}