void CMyDlg::OnButton1() 
{
CRect rc;
this->GetWindowRect(&rc);
CDC* pDC=GetDC();
CDC menudc;
CBitmap *olddc;
CBitmap btmap;
btmap.LoadBitmap("\\2.bmp");
menudc.CreateCompatibleDC(pDC);
olddc=menudc.SelectObject(&btmap);
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&menudc,0,0,SRCCOPY);
if(olddc)
{
menudc.SelectObject(olddc);
}

UpdateData(false);
}麻烦各位给看看,位图为什么不能显示???、

解决方案 »

  1.   

    从文件中加载位图用LoadImage,LoadBitmap是从资料中加载的 CRect rc;
    GetWindowRect(&rc);
    CDC* pDC=GetDC();
    CDC menudc;
    CBitmap *olddc;
    CBitmap btmap; HBITMAP hBmp = (HBITMAP)LoadImage(NULL, "2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    btmap.Attach(hBmp); menudc.CreateCompatibleDC(pDC);
    olddc = menudc.SelectObject(&btmap);
    pDC->BitBlt(0, 0, rc.Width(), rc.Height(), &menudc, 0, 0, SRCCOPY);

    menudc.SelectObject(olddc);
    menudc.DeleteDC();
    btmap.DeleteObject();
    ReleaseDC(pDC);
      

  2.   

    检查一下LoadBitmap的返回值,是否为真?
      

  3.   

    btmap.LoadBitmap("\\2.bmp");
    ========
    如果这里的2.bmp是一个文件的话,那么肯定不行,因为LoadBitmap只能加载资源,如果要加载文件,用LoadImage。
      

  4.   

    To  iamshuke
        图像加载到对话框了,可是我移动对话框后到屏幕的四周,图片就会被覆盖掉,什么原因?是没有涮洗吗?
      

  5.   


    使用LoadBitmap(),加载资源,你需要将图片,先转换为资源,然后加载该资源
      

  6.   

    http://topic.csdn.net/u/20100618/19/d523648a-9f7e-4e5d-9cf2-2005c7bd5578.html
      

  7.   

    你代码是写在按钮的处理函数中的,当然有这个问题了,将上面的代码写在OnPaint中就行了。
      

  8.   

    [Quote=引用 5 楼 wltg2001 的回复:]
    btmap.LoadBitmap("\\2.bmp");
    ========
    如果这里的2.bmp是一个文件的话,那么肯定不行,因为LoadBitmap只能加载资源,如果要加载文件,用LoadImage。
    正解