我建了个单文档 继承的Frameview 想在主界面加张jpeg图片 且能随窗口缩放自动调整大小 请问怎么写? 谢谢!

解决方案 »

  1.   

    是不是:
    在CView::OnDraw中 而且每一次执行都要求重新计算客户区的坐标范围
    利用BitBlt函数可根据参数的设置进行相应的缩放、放大功能重新绘制。
      

  2.   

    想在主界面上加图片很容易吧,你把这个jpg的图片另存为24位位图,然后在Form上放置一个picture控件,把这个图放上面,就ok了至于要随窗口自动调整大小,很麻烦的,
    留一个邮箱吧,我给你发过去个例子
      

  3.   

    函数功能:显示JPG和GIF图片参数说明 pDC:设备环境对象  strPath:要显示的图片路径  x:要显示的X位置   y:要显示的Y位置*/    BOOL CShowJpegView::ShowJpgGif(CDC* pDC,CString strPath, int x, int y){    IStream *pStm;      CFileStatus fstatus;      CFile file;      LONG cb;      //打开文件并检测文件的有效性    if (file.Open(strPath,CFile::modeRead)&&        file.GetStatus(strPath,fstatus)&&         ((cb = fstatus.m_size) != -1))      {          HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);          LPVOID pvData = NULL;          if (hGlobal != NULL)          {              pvData = GlobalLock(hGlobal);            if (pvData != NULL)              {                  file.ReadHuge(pvData, cb);                  GlobalUnlock(hGlobal);                  CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);              }         }     }    else    {        return false;    } //打开文件结束        //显示JPEG和GIF格式的图片,GIF只能显示一帧,还不能显示动画,//要显示动画GIF请使用ACTIVE控//件。    IPicture *pPic;     //load image from file stream    if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))     {         OLE_XSIZE_HIMETRIC hmWidth;          OLE_YSIZE_HIMETRIC hmHeight;          pPic->get_Width(&hmWidth);          pPic->get_Height(&hmHeight);          double fX,fY;          //get image height and width        fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);          fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);          //use render function display image        if(FAILED(pPic->Render(*pDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))          {            pPic->Release();            return false;        }        pPic->Release();      }      else      {        return false;      }    return true;} 下面这三行代码是调用时函数的方法:    CString sPath;    sPath=_T("C:\\WINDOWS\\SYSTEM\\OOBE\\IMAGES\\BGMC.JPG");    ShowJpgGif(pDC,sPath,100,100); 如果你显示的是在一个控件在,请用如下方式获得CDC    //将pStatic指向要显示的地方CDC* pDC = GetDlgItem(IDC_CONTROL)->GetDC(); 以上是显示JPG和GIF图片的一个简单的方法,简单的同时也存在着不足。放大缩小功能和显示动画GIF文件没实现。