码迷,mamicode.com
首页 > 其他好文 > 详细

VC保存当面某个区域的图片

时间:2015-07-16 18:38:39      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

void ViewReportDlg::CopyScreenToBitmap() 
{ 
    CDC *cdc = this->GetDC();
    HDC wnd = cdc->GetSafeHdc();
    //CClientDC dc(this);

    CRect rect; 
    BOOL  showMsgTag;                  //是否要弹出”图像保存成功对话框" 
    this->GetClientRect(&rect);                  //获取画布大小

    HBITMAP hbitmap = CreateCompatibleBitmap(wnd, rect.right-rect.left, rect. bottom-rect.top);     //创建兼容位图

    HDC hdc = CreateCompatibleDC(wnd);      //创建兼容DC,以便将图像保存为不同的格式
    HBITMAP hOldMap = (HBITMAP)SelectObject(hdc,hbitmap); 
    //将位图选入DC,并保存返回值 
    BitBlt(hdc,0,0,rect.right-rect.left,rect.bottom-rect.top,wnd,0,0,SRCCOPY); 

    //将屏幕DC的图像复制到内存DC中
    CImage image;//需要 
    image.Attach(hbitmap,CImage::DIBOR_DEFAULT);

    //image.Save(_T("c:\\B.jpg"));//如果文件后缀为.bmp,则保存为为bmp格式 
    //以下程序用于选择图片保存路径等信息    
    // 图像保存
    HRESULT hResult = image.Save(_T("E:\\4444.bmp"));
    if (FAILED(hResult))
        MessageBox("保存图像文件失败!");
    else
        MessageBox("保存图像文件成功!");
    image.Detach();    
    ::SelectObject(hdc, hOldMap);//选入上次的返回值
    ::DeleteDC(hdc); 
}

 

VC保存当面某个区域的图片

标签:

原文地址:http://www.cnblogs.com/Travis990/p/4651475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!