前面定义了如下
CBitmap bmp;
HBIATMAP.hbmp;
BITMAP bmInfo;
CStatic *pStactic;求大神解释一下各句的意思和功能~~~我知道他的功能是显示一张图片,但现在我想显示一个自己做的位图,所以求大神解答一下
//********************************************************功能:在基于对话框窗口中显示一张图片
strpicname="1.bmp";//其中1.bmp是一副图片
hbmp=(HBITMAP)::LoadImage(NULL,strpicname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
bmp.Attach(hbmp);//获得加载图片的句柄
bmp.GetBitmap(&bmInfo);//获取图片格式
pOldmap=(CBitmap*)dcMem.SelectObject(bmp);
pStactic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
bmp.Detach();
 
//******************************************************

解决方案 »

  1.   

    前面定义了如下
    CBitmap bmp;
    HBIATMAP hbmp;
    BITMAP bmInfo;
    CStatic *pStactic;求大神解释一下各句的意思和功能~~~我知道他的功能是显示一张图片,但现在我想显示一个自己做的位图,所以求大神解答一下
    //********************************************************功能:在基于对话框窗口中显示一张图片
    strpicname="1.bmp";//其中1.bmp是一副图片
    hbmp=(HBITMAP)::LoadImage(NULL,strpicname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    bmp.Attach(hbmp);//获得加载图片的句柄
    bmp.GetBitmap(&bmInfo);//获取图片格式
    pOldmap=(CBitmap*)dcMem.SelectObject(bmp);
    pStactic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
    bmp.Detach(); 
    //******************************************************
      

  2.   

    pOldmap=(CBitmap*)dcMem.SelectObject(bmp);
    pStactic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
    >>
    是不是將記憶體 dc 中的圖片,以SRCCOPY方式拷貝呀....江振興  台灣  20130730 05:45
      

  3.   

    strpicname="1.bmp";//其中1.bmp是一副图片
    hbmp=(HBITMAP)::LoadImage(NULL,strpicname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    bmp.Attach(hbmp);//获得加载图片的句柄
    bmp.GetBitmap(&bmInfo);//获取图片格式
    pOldmap=(CBitmap*)dcMem.SelectObject(bmp);//为设备上下文选中位图指针
    pStactic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);//把一个位图从dcMem这个位置拷贝到拷贝到lRect里面
    bmp.Detach(); //卸载位图句柄
      

  4.   

    strpicname="1.bmp";//其中1.bmp是一副图片 
    hbmp=(HBITMAP)::LoadImage(NULL,strpicname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//加载硬盘上的图片(应用程序所在的位置) bmp.Attach(hbmp);//附加句柄,相当于初试化bmp
    bmp.GetBitmap(&bmInfo);//得到BMP图象的信息 ,保存到bmInfo里
    pOldmap=(CBitmap*)dcMem.SelectObject(bmp); //将加载的1.bmp的位图加入到DC中,并保存旧的
    位图指针
    pStactic->GetDC()->StretchBlt(lRect.left,lRect.top,lRect.Width(),lRect.Height(),&dcMem,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);//在pStactic控件上显示1.bmp
     bmp.Detach();  //分离释放
      

  5.   

    你这不都有注释了么
    再就是LoadImage是加载
    StretchBlt是缩放绘制
    其他的你记住就好
    绘制位图就是那么用的