在VC中将客户区图像保存到BMP位图文件
  或者jpg文件  
只要能保存为图象格式就行?
  在vc6.0中怎么写啊????

解决方案 »

  1.   

    www.vckbase.net上有这样的例子代码.
      

  2.   

    void SaveBmp(HBITMAP hbmp, LPCTSTR sIconFileName)
    {
    if(hbmp==NULL || sIconFileName==NULL)
    return;
    //warning: this code snippet is not bullet proof.
    //do error check by yourself [masterz]
    PICTDESC picdesc;
    picdesc.cbSizeofstruct = sizeof(PICTDESC);
    picdesc.picType = PICTYPE_BITMAP ;    
    picdesc.bmp.hpal = NULL;
    picdesc.bmp.hbitmap = hbmp;
    IPicture* pPicture=NULL;
    OleCreatePictureIndirect(&picdesc, IID_IPicture, TRUE,(VOID**)&pPicture);
    LPSTREAM pStream;
    CreateStreamOnHGlobal(NULL,TRUE,&pStream);
    LONG size;
    HRESULT hr=pPicture->SaveAsFile(pStream,TRUE,&size);
    char pathbuf[1024];
    strcpy(pathbuf,sIconFileName);
    CFile iconfile;
    iconfile.Open(pathbuf, CFile::modeCreate|CFile::modeWrite);
    LARGE_INTEGER li;
    li.HighPart =0;
    li.LowPart =0;
    ULARGE_INTEGER ulnewpos;
    pStream->Seek( li,STREAM_SEEK_SET,&ulnewpos);
    ULONG uReadCount = 1;
    while(uReadCount>0)
    { pStream->Read(pathbuf,sizeof(pathbuf),&uReadCount);
    if(uReadCount>0)
    iconfile.Write(pathbuf,uReadCount);
    }
    pStream->Release();
    iconfile.Close();
    }void CsaveviewView::OnSaveview()
    {
    CClientDC dc(this);
    CDC dcmem;
    dcmem.CreateCompatibleDC(&dc);
    CBitmap bmp;
    CRect rc;
    GetClientRect(&rc);
    bmp.CreateCompatibleBitmap(&dc,rc.Width(),rc.Height());
    dcmem.SelectObject(&bmp);
    dcmem.BitBlt(0,0,rc.Width(),rc.Height(),&dc,0,0,SRCCOPY);
    SaveBmp(bmp,"c:\\a.bmp");
    }