±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 243  |  »Ø¸´: 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£¬¼´È«ÆÁÏÔʾ¡£

ºÃÁË£¬¾ÍÕâÑù°É£¬ÓÐÎÊÌâÇëÖ±½ÓÔÚÆÀÂÛÀï˵Ã÷£¬Ï£ÍûÄܵõ½ÅóÓÑÃǵķ´À¡ÐÅÏ¢
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yyxhhx

½ð³æ (СÓÐÃûÆø)

²»Òª»ØÌûÁË ±¾ÈËÍ˳öÁË£¬Ã»¿Õ
2Â¥2009-08-29 13:01:46
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ yyxhhx µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[˶²©¼ÒÔ°] Çóµ÷¼Á Óлú»¯Ñ§¿¼ÑÐ356·Ö +3 Nadiums 2026-03-25 4/200 2026-03-29 00:50 by 544594351
[¿¼ÑÐ] 11408Èí¼þ¹¤³ÌÇóµ÷¼Á +3 Qiuѧing 2026-03-28 3/150 2026-03-28 21:50 by zhq0425
[¿¼ÑÐ] 332Çóµ÷¼Á +4 @MZB382400 2026-03-28 4/200 2026-03-28 21:02 by ÌÆãå¶ù
[¿¼ÑÐ] 283Çóµ÷¼Á +7 A child 2026-03-28 7/350 2026-03-28 12:05 by zllcz
[¿¼ÑÐ] 339Çóµ÷¼Á£¬Ïëµ÷»Ø½­ËÕ +6 ¿¾ÂóÑ¿ 2026-03-27 8/400 2026-03-28 10:40 by ¿¾ÂóÑ¿
[¿¼ÑÐ] Çóµ÷¼Á +4 Áã°Ë# 2026-03-27 4/200 2026-03-27 18:07 by yu221
[¿¼ÑÐ] ¿¼Ñе÷¼Á +4 Sanmu-124 2026-03-26 4/200 2026-03-27 17:49 by kiokin
[¿¼ÑÐ] 0856µ÷¼Á +5 ÇóÇóÈÃÎÒÓÐÊé¶Á° 2026-03-26 6/300 2026-03-27 15:12 by caszguilin
[¿¼ÑÐ] 314Çóµ÷¼Á +3 ÏªÔÆçæ 2026-03-26 3/150 2026-03-27 11:20 by sanrepian
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉÂʦ´óÉúÎïѧ071000£¬298·Ö£¬Çóµ÷¼Á +5 SYA£¡ 2026-03-23 5/250 2026-03-27 09:29 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] Çóµ÷¼Á +6 ÁÖ֮Ϧ 2026-03-24 6/300 2026-03-27 08:38 by hypershenger
[¿¼ÑÐ] 081200-11408-276ѧ˶Çóµ÷¼Á +4 ´Þwj 2026-03-26 4/200 2026-03-27 08:04 by chemisry
[¿¼ÑÐ] 336²ÄÁÏÇóµ÷¼Á +7 ³ÂäÞÓ¨ 2026-03-26 9/450 2026-03-27 00:20 by wxiongid
[¿¼ÑÐ] 289Çóµ÷¼Á +17 ˶ÐǸ° 2026-03-23 17/850 2026-03-26 16:18 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] 296Çóµ÷¼Á +4 Íô£¡£¿£¡ 2026-03-25 7/350 2026-03-25 16:41 by Íô£¡£¿£¡
[¿¼ÑÐ] Çóµ÷¼Á +3 ÀîÀî²»·þÊä 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[¿¼ÑÐ] Çóµ÷¼Á +6 ÑÐÑУ¬½Óµç»° 2026-03-24 7/350 2026-03-24 17:01 by barlinike
[¿¼ÑÐ] ²ÄÁÏר˶331Çóµ÷¼Á +4 Ïʵ±Å£ 2026-03-24 4/200 2026-03-24 15:58 by JourneyLucky
[»ù½ðÉêÇë] Çë½ÌÏ´ó¼Ò 2026Äê¹ú¼Ò»ù½ðÉêÇëÊÇ˫äÉóÂ𣿠+3 lishucheng1 2026-03-22 5/250 2026-03-24 08:22 by gltch
[ÂÛÎÄͶ¸å] ¼±·¢ºËÐÄÆÚ¿¯ÂÛÎÄ +3 ÏÍ´ïÎʽò 2026-03-23 5/250 2026-03-23 17:13 by ÃÃ×Ó²»ºÃÈÇ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û