| ²é¿´: 244 | »Ø¸´: 1 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
yyxhhx½ð³æ (СÓÐÃûÆø)
|
[½»Á÷]
¡¾×ªÌû¡¿VCʵÏÖ´ò¿ªBMP JPG»òGIFͼƬ
|
||
|
VCʵÏÖ´ò¿ªBMP JPG»òGIFͼƬ£¨¶þ£©|VC/MFC/´ò¿ªÍ¼Æ¬2008-07-18 13:06 ֮ǰд¹ýһƪÎÄÕ¹ØÓÚVCÖдò¿ªÍ¼Æ¬ÎļþµÄÎÄÕ£¬ÄǸö²»ÊǺܺÃÀí½â£¬ÀïÃæÓÐЩµØ·½ÏÔµÃÓеãÂÒ£¬Õâ¸ö°æ±¾µÄÒªÈÝÒ×Àí½âÒ»µã£¬²»¶à˵ÁË£¬ÎÒÃÇ¿ªÊ¼°É¡£ Ô´ÎļþÏÂÔØ£ºShowBitmap.rar 1¡¢Ð½¨Ò»¸öµ¥ÎĵµµÄÓ¦ÓóÌÐò£¬ÏîÄ¿Ãû³ÆÎªShowBitmap 2¡¢ÎªCShowBitmapViewÀàÌí¼ÓÏÂÊö³ÉÔ±±äÁ¿ºÍ³ÉÔ±º¯Êý£ºÆäÖÐCImage m_MyImageÐèҪͷÎļþ"atlimage.h"µÄÖ§³Ö,»òÕßÄã¿ÉÒÔÓÃÏòµ¼À´¼ÓÕâ¸ö±äÁ¿£¬ÄÇôͷÎļþ»á×Ô¶¯Ìí¼ÓµÄ£¬ÎÒÃÇÕâÀïÊÖ¶¯ÔÚCShowBitmapView.hÖмÓÈë#include "atlimage.h"£¬Ò»¶¨Òª¼ÇµÃ¼ÓÕâ¸ö¡£ //²ÎÊý¶¨Òå public: CString strPicPath; //´ò¿ªµÄͼƬÎļþÎļþÃû CString extname; //´ò¿ªµÄͼƬÎļþµÄÀ©Õ¹Ãû CBitmap m_bitmap; //´´½¨Î»Í¼¶ÔÏó CImage m_MyImage; //ÓÃÓÚ¶ÁÈ¡ÓëÏÔʾjpgµÈ¸ñʽµÄͼÏñÎļþ void ShowBitmap(CDC* pDC,CString strPicPath); //ÓÃÀ´ÏÔʾָ¶¨Î»Í¼µÄº¯Êý void ShowPic(CDC* pDC,CString picName); 3¡¢ÎªID_FILE_OPENÏûÏ¢Ìí¼ÓÏìÓ¦º¯Êý£¨¾ßÌåÔõô¼Ó¾Í²»Ï¸ËµÁË£©£¬±àд¸Ãº¯Êý(´úÂëÈçÏÂ) void CShowBitmapView::OnFileOpen() { //CFileDialog dlg(TRUE,_T("BMP" ,_T("*.BMP" ,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("λͼÎļþ(*.BMP;*.jpg)|*.BMP;*.jpg|" );CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("ͼƬÎļþ(*.jpg;*.jpeg;*.gif;*.bmp)|*.jpg;*.jpeg;*.gif;*.bmp|λͼÎļþ(*.BMP)|*.BMP||" );if (IDOK==dlg.DoModal()) { strPicPath.Format(_T("%s" ,dlg.GetPathName());extname = dlg.GetFileExt(); //·µ»ØÑ¡¶¨ÎļþµÄÀ©Õ¹ÎļþÃû extname.MakeLower(); //½«ºó׺Ãû±ä³ÉСдµÄ Invalidate(); } } 4¡¢±àдBMPͼƬÏÔʾº¯Êý void CShowBitmapView::ShowBitmap(CDC* pDC,CString strPicPath) { HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,strPicPath,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE); m_bitmap.Detach(); m_bitmap.Attach(hBitmap); CRect rect; GetClientRect(&rect); CDC dcImage; if (!dcImage.CreateCompatibleDC(pDC)) { return; } BITMAP bm; m_bitmap.GetBitmap(&bm); dcImage.SelectObject(&m_bitmap); //pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcImage,0,0,SRCCOPY); //ͼƬ±£ÁôÔʼ´óС pDC->StretchBlt(0,0,rect.right,rect.bottom,&dcImage,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); //ͼƬÀÉìÏÔʾ£¬ÌîÂúÕû¸ö¿Í»§Çø } 5¡¢±àдJPGµÈͼƬÏÔʾº¯Êý£¨´Ë´¦Î´ÁгöÈ«ÆÁ²é¿´Í¼Æ¬µÄ´úÂ룬ÐèÒªÕ⹦Äܵϰ£¬Çë²Î¿´Drawº¯ÊýµÄÏà¹Ø×ÊÁÏ£© void CShowBitmapView::ShowPic(CDC* pDC,CString strPicPath) { if(!m_MyImage.IsNull()) m_MyImage.Destroy(); HRESULT hResult=m_MyImage.Load(strPicPath); int iWidth=m_MyImage.GetWidth(); int iHeight=m_MyImage.GetHeight(); m_MyImage.Draw(pDC->m_hDC,0,0,iWidth,iHeight); } 6¡¢ÐÞ¸ÄOnDrawº¯Êý£¬ÊµÏÖͼƬµÄÏÔʾ void CShowBitmapView::OnDraw(CDC* pDC) { CShowBitmapDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; if (0 == extname.Compare(_T("bmp" )){ ShowBitmap(pDC,strPicPath); } else { if (0 == extname.Compare(_T("jpg" )||0 == extname.Compare(_T("jpeg" )||0 == extname.Compare(_T("gif" )){ ShowPic(pDC,strPicPath); } } 7¡¢½áÊøÓï: ¸ÐÐËȤµÄÅóÓÑ£¬¿ÉÒÔ°ÑÉÏÃæÁ½¸öͼƬÏÔʾº¯ÊýºÍOnDrawÖеÄIfÓï¾ä²¿·ÖºÏ²¢³ÉÒ»¸öº¯Êý¡£Ï£Íû±¾ÎÄÄܸøÄãÃÇ´øÀ´µã°ïÖú£¬ÓÐʲôÎÊÌâµÄ»°Ò²ÇëÖ¸Õý¡£ 8¡¢²¹³ä£º ³ÌÐòÖÐÓеãСÎÊÌâ¾ÍÊÇ£¬µ±Í¼Æ¬ÀÉìÏÔʾµÄʱºò¿ÉÄÜ»á³öÏÖÊ§ÕæµÄÇé¿ö£¬Ò»°ãÊÇBMP¸ñʽµÄͼƬËõС¡¢JPGÎļþÀÉìʱ»áÊ§Õæ£¬ÕâʱºòÔÚʹÓÃStretchBltº¯Êý»òÕßDrawº¯ÊýǰÐèÒªµ÷ÓÃSetStretchBltModeº¯Êý£¬¶ÔÓÚÉÏÃæ³ÌÐòµÄÐ޸ķ½·¨ÊÇ£º 1£©ÔÚShowBitmap(CDC* pDC,CString strPicPath)º¯ÊýÖÐ pDC->StretchBlt(0,0,rect.right,rect.bottom,&dcImage,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);Ç°Ãæ¼ÓÈë pDC->SetStretchBltMode(STRETCH_HALFTONE); 2£©ÔÚShowPic(CDC* pDC,CString strPicPath)º¯ÊýÖÐ m_MyImage.Draw(pDC->m_hDC,0,0,rect.right,rect.bottom,0,0,iWidth,iHeight);Ç°Ãæ¼ÓÈë ::SetStretchBltMode(pDC->m_hDC,HALFTONE);»òÕß pDC->SetStretchBltMode(STRETCH_HALFTONE); ÕâÀïµÄDraw¸úÉÏÃæµÄÓе㲻һÑù£¬Õâ¸öʵÏÖÁËͼƬÌîÂúÕû¸öView£¬¼´È«ÆÁÏÔʾ¡£ ºÃÁË£¬¾ÍÕâÑù°É£¬ÓÐÎÊÌâÇëÖ±½ÓÔÚÆÀÂÛÀï˵Ã÷£¬Ï£ÍûÄܵõ½ÅóÓÑÃǵķ´À¡ÐÅÏ¢ |
» ²ÂÄãϲ»¶
299Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
Ò»Ö¾Ô¸±±¾©Àí¹¤´óѧ±¾¿Æ211²ÄÁϹ¤³Ì294Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
300Çóµ÷¼Á£¬²ÄÁÏ¿ÆÑ§Ó¢Ò»Êý¶þ
ÒѾÓÐ8È˻ظ´
ÕÐÊÕÉúÎïѧ/ϸ°ûÉúÎïѧµ÷¼Á
ÒѾÓÐ5È˻ظ´
070305¸ß·Ö×Ó»¯Ñ§ÓëÎïÀí 304·ÖÇóµ÷¼Á
ÒѾÓÐ7È˻ظ´
289Çóµ÷¼Á
ÒѾÓÐ13È˻ظ´
Ò»Ö¾Ô¸¹þ¶û±õ¹¤Òµ´óѧ²ÄÁÏÓ뻯¹¤·½Ïò336·Ö
ÒѾÓÐ9È˻ظ´
081200-11408-276ѧ˶Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
µ÷¼ÁÇóԺУÕÐÊÕ
ÒѾÓÐ5È˻ظ´
µ÷¼Á310
ÒѾÓÐ8È˻ظ´
yyxhhx
½ð³æ (СÓÐÃûÆø)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 1520
- Ìû×Ó: 231
- ÔÚÏß: 27.3Сʱ
- ³æºÅ: 815643
- ×¢²á: 2009-07-25
- רҵ: ¹¦ÄÜÓëÖÇÄܸ߷Ö×Ó
2Â¥2009-08-29 13:01:46














,_T("*.BMP"
»Ø¸´´ËÂ¥