VC++请教,高手进来!我想BMP图像的显示,可是显示不了!下面是我的代码。看一下是哪里不行!
void CBmpView::OnFileOpen() 
{
 // TODO: Add your command handler code here
 char szFileFilter[] = "位图(*.bmp)|*.bmp|所有文件(*.*)|*.*||";
 CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFileFilter);
 if (IDOK == dlg.DoModal())
 {
  m_Bmpname.Format("%s", dlg.GetPathName());
  Showpicture(m_Bmpname);
 }
}void CBmpView::Showpicture(CString Bmpname)
{
 if (0 == m_State)
 {
  HBITMAP hBitmap;
  hBitmap = (HBITMAP)LoadImage(NULL, m_Bmpname, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION
   | LR_DEFAULTSIZE | LR_LOADFROMFILE);
  m_bitmap.Attach(hBitmap);
  m_State = 1;
 }
 Invalidate();
}
还请高手自己也试一下!看看是哪里不行。我搞了很久,也看了MSDN可是就是显示不出来。  m_Bmpname.Format("%s", dlg.GetPathName());
  Showpicture(m_Bmpname);http://www.hvacr.cn/
  m_Bmpname.Format("%s", dlg.GetPathName());
  Showpicture(m_Bmpname);http://et.hvacr.cn/zhongyangkongtiaozhuji_1579_2.html
  m_Bmpname.Format("%s", dlg.GetPathName());
  Showpicture(m_Bmpname);http://et.hvacr.cn/hszhongyangkongtiao_16_2.html

解决方案 »

  1.   

    HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,_T(“xxx.bmp”),Image_Bitmap,0,0,
    Lr_CreateDibSection|Lr_DefaultSize|Lr_LoadFromFile); //加载bmp文件
    CBitmap bitmap;    
    bitmap.Attach(hBitmap); //关联位图对象
    CDC dcimage;
    dcimage.CreateCompatibleDC(GetDC()); //内存DC
    BITMAP bmp;
    bitmap.GetBitmap(&bmp); //获取位图信息
    dcimage.SelectObject(&bitmap); //选取位图对象
    pDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&dcimage,0,0,SRCCOPY); //显示
      

  2.   

    GetDC()->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&dcimage,0,0,SRCCOPY); //显示