亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

VC++實現View內容保存為圖片的方法

2020-05-23 14:01:12
字體:
來源:轉載
供稿:網友

本文實例講述了VC++實現View內容保存為圖片的方法。分享給大家供大家參考,具體如下:

我們在單文檔應用程序中,經常需要將View中的內容保存為各種格式的圖片文件,以便打印。乍一看,可能不知道從哪里下手,其實主要就是用到Bitmap的save方法,如:

HDC hmemDC = ::CreateCompatibleDC( hdc );HBITMAP hBmp = ::CreateCompatibleBitmap( hdc, destRect.Width(),destRect.Height() );HANDLE hOld = ::SelectObject(hmemDC, hBmp);Graphics graphic( hmemDC );//下面進行各種文字、圖形、圖片的繪制 …………………………………………….Bitmap bitmap(hBmp, NULL );CLSID clsID;//保存不同格式的(.jpg,bmp,png)的圖片需要不同的CLSID, imageFormat為用戶期望保存的圖片格式if (_T("jpg") == imageFormat.MakeLower() ){   GetEncoderClsid(_T("image/jpeg"), &clsID);}else if ( _T("bmp") == imageFormat.MakeLower() ){   GetEncoderClsid(_T("image/bmp"), &clsID);}else if ( _T("png") == imageFormat.MakeLower() ){   GetEncoderClsid(_T("image/png"), &clsID);}//保存為圖片,strFN為圖片保存的路徑和文件名bitmap.Save( strFN, &clsID, NULL );::SelectObject( hmemDC, hOld );::DeleteObject( hBmp );::DeleteDC( hmemDC );

下面重要的就是獲取不同圖片格式的CLSID,看下面代碼:

Int GetEncoderClsid(const TCHAR* format, CLSID* pClsid){  UINT num= 0;  UINT size= 0;  ImageCodecInfo* pImageCodecInfo= NULL;  GetImageEncodersSize(&num, &size);  if(size== 0)  {    return -1;  }  pImageCodecInfo= (ImageCodecInfo*)(malloc(size));  if(pImageCodecInfo== NULL)  {    return -1;  }  GetImageEncoders(num, size, pImageCodecInfo);  for(UINT j=0; j< num; ++j)  {    if(_tcscmp(pImageCodecInfo[j].MimeType, format)== 0)    {      *pClsid= pImageCodecInfo[j].Clsid;      free(pImageCodecInfo);      return j;    }  }  free(pImageCodecInfo);  return -1;}

如果是直接打印View中的圖片,那么View的OnDraw函數給的pDC指的就是打印機的紙張的尺寸,我們無需做太多的處理,我們只需要將當期View的區域轉換到紙張的大小即可,如:

CRect rc;GetClientRect( &rc );Long width =0,height = 0;if( pDC->IsPrinting){  int  xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX);  int  yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY);  //得到設備坐標和邏輯坐標的比例  long  xExt = (long)rc.width() * xLogPixPerInch/96;  long  yExt = (long)rc.height() * yLogPixPerInch/96;  width = xExt;  height = yExt;  //后面使用GDI+進行繪圖  HBITMAP hBmp = ::CreateCompatibleBitmap( pDC->m_hDC, width, height );  HANDLE hOld = ::SelectObject(hmemDC, hBmp);  Graphics tmp_graff( hmemDC );  …………………………………..  //獲取紙張的大小,然后拉伸拷貝  int iPageWidth = pDC->GetDeviceCaps(HORZRES);  int iPageHeight = pDC->GetDeviceCaps(VERTRES);  ::StretchBlt( pDC->m_hDC, 0, 0, iPageWidth, iPageHeight, hmemDC, 0, 0, width, height, SRCCOPY );  ::SelectObject( hmemDC, hOld );  ::DeleteObject( hBmp );  ::DeleteDC( hmemDC );}

希望本文所述對大家VC++程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频资源| 亚洲色图18p| 国产成人精品国内自产拍免费看| 国产色综合天天综合网| 色偷偷噜噜噜亚洲男人的天堂| 久久久久久免费精品| 欧美日韩成人网| 亚洲丁香久久久| 一区二区三区 在线观看视| 久久99热这里只有精品国产| 久久综合久中文字幕青草| 欧美精品videos另类日本| 国产91ⅴ在线精品免费观看| www.欧美精品一二三区| 国产日韩在线看片| 欧美性xxxxxx| 91精品国产乱码久久久久久久久| 国产视频在线一区二区| 国模精品系列视频| 亚洲精品美女免费| 精品福利在线观看| 国产午夜精品一区理论片飘花| 欧美激情欧美激情| 亚洲一区二区三区四区视频| 精品中文字幕视频| 精品网站999www| 亚洲国产成人精品久久| 欧美成人精品不卡视频在线观看| 国产日韩欧美在线视频观看| 精品性高朝久久久久久久| 青青久久av北条麻妃海外网| 亚洲免费一在线| 欧美国产日韩视频| 国产精品久久视频| 2025国产精品视频| 亚洲综合精品一区二区| 国产福利视频一区二区| 日韩av片免费在线观看| 久久av.com| 成人激情av在线| 久久精品欧美视频| 国产精品高清在线观看| 亚洲第一男人av| 国产成人一区二区在线| 久久精品国产成人精品| 欧美精品国产精品日韩精品| www.日韩视频| 欧美孕妇与黑人孕交| 欧洲亚洲在线视频| 欧美精品videofree1080p| 激情亚洲一区二区三区四区| 欧美视频裸体精品| 国产偷国产偷亚洲清高网站| 国产在线精品自拍| 国产精品日韩欧美大师| 欧美精品一区三区| 欧美做爰性生交视频| 国产美女主播一区| 色妞一区二区三区| 久久久人成影片一区二区三区观看| 欧美怡红院视频一区二区三区| 日韩成人av一区| 久久影视电视剧免费网站清宫辞电视| 国产精品视频白浆免费视频| 国产一区二区三区网站| 91精品综合久久久久久五月天| 国产成人综合精品| 国产一区二区三区在线观看视频| 欧美激情国内偷拍| 精品毛片网大全| 亚洲精品第一国产综合精品| 庆余年2免费日韩剧观看大牛| 欧美寡妇偷汉性猛交| 国产精品无码专区在线观看| 精品自在线视频| 亚洲成av人片在线观看香蕉| 亚洲第一精品夜夜躁人人爽| 亚洲欧洲一区二区三区在线观看| 亚洲精品一区中文| 国产精品国模在线| 91精品国产高清| 欧美性xxxx极品高清hd直播| 日韩欧美在线免费| 亚洲美女自拍视频| 欧美激情一二区| 亚洲日本成人女熟在线观看| 日韩av网址在线| www.99久久热国产日韩欧美.com| 日韩中文字幕久久| 欧美激情一二三| 国产精品专区一| 国产一区二区欧美日韩| 最新中文字幕亚洲| 夜夜嗨av一区二区三区四区| 精品视频—区二区三区免费| 91av中文字幕| 欧美精品videos| 国产精品久久久久一区二区| 国产欧美日韩免费| 国产香蕉97碰碰久久人人| 精品久久久久久电影| 国产99视频在线观看| 国产成人午夜视频网址| 日韩视频在线观看免费| 狠狠躁夜夜躁久久躁别揉| 欧美久久精品午夜青青大伊人| 亚洲色图av在线| 国产色综合天天综合网| 亚洲精品欧美一区二区三区| 国产99久久精品一区二区| 久久久久久久久亚洲| 成人免费自拍视频| 欧美成人精品xxx| 欧美裸体男粗大视频在线观看| 国产精品欧美一区二区| 国产97在线|日韩| 最近2019中文免费高清视频观看www99| 久久国产精品久久久久久久久久| 大胆欧美人体视频| 欧美主播福利视频| 国产精品伦子伦免费视频| 欧美日韩在线视频观看| 久久电影一区二区| 欧美激情亚洲精品| 91久久国产婷婷一区二区| 78m国产成人精品视频| 91av在线国产| 久久久久久97| 亚洲精品一区中文| 亚洲成色777777女色窝| 欧美夜福利tv在线| 日韩av在线天堂网| 这里只有精品视频| 日韩电影免费在线观看| 久久久久久久久爱| 日韩a**中文字幕| 久久精品中文字幕电影| 一区三区二区视频| 国产成人精品999| 91精品国产91久久| 久久久久久久久久国产精品| 久久久久久久久久久av| 亚洲日韩中文字幕在线播放| 久久久99久久精品女同性| 少妇高潮久久77777| 亲爱的老师9免费观看全集电视剧| 欧美一级成年大片在线观看| 国产日韩欧美在线看| 2018中文字幕一区二区三区| 欧美人与性动交a欧美精品| 国产精品大片wwwwww| 精品国偷自产在线| 欧美中文字幕精品| 欧美一区亚洲一区| 国产精品久久一| 亚洲国语精品自产拍在线观看| 成人激情综合网| 国产精品美女主播在线观看纯欲| 亚洲精品久久久久国产| 亚洲精品理论电影| 欧美黑人狂野猛交老妇| 欧美激情视频一区| 亚洲一区二区三| 尤物九九久久国产精品的特点|