我是利用CFileDialog打开一张位图文件,然后在对话框显示,代码如下:
void CMy1106Dlg::OnButton1() 
{
// TODO: Add your control notification handler code here
CString lpszFilter="位图(*.bmp)|*.bmp|\
全部文件(*.*)|*.*||";   
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|
OFN_ALLOWMULTISELECT,lpszFilter,NULL);
if(dlg.DoModal()==IDOK)
{
m_hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
m_pBmp = CBitmap::FromHandle(m_hBitmap);  }
}
void CMy1106Dlg::OnPaint() 
{
CPaintDC dc(this); // device context for painting if(m_hBitmap)//如果得到位图句柄
    {
BITMAP bm; 
CDC dcMem; 
VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm)); 
dcMem.CreateCompatibleDC(&dc); 
CBitmap *pOldBMP=(CBitmap *)dcMem.SelectObject(m_pBmp); 
BitBlt(dc.m_hDC,0, 0, bm.bmWidth, bm.bmHeight, dcMem.m_hDC, 0, 0, SRCCOPY); 
dcMem.SelectObject(pOldBMP); 
}
}
位图不能显示出来,请问这是怎么回事?