<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    vc 加載bmp位圖并顯示的方法

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    方法一、顯示位圖文件

    [cpp] view plaincopy  
    1. HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,_T(“xxx.bmp”),Image_Bitmap,0,0,Lr_CreateDibSection|Lr_DefaultSize|Lr_LoadFromFile);  
    2.   
    3. //加載bmp文件   xxx.bmp 就是要加載的圖片名字  
    4.   
    5. CBitmap bitmap; bitmap.Attach(hBitmap); //關聯位圖對象  
    6.   
    7. CDC dcimage;dcimage.CreateCompatibleDC(pDC); //內存  
    8.   
    9. DCBITMAP bmp;bitmap.GetBitmap(&bmp); //獲取位圖信息  
    10. dcimage.SelectObject(&bitmap); //選取位圖對象  
    11.   
    12. pDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&dcimage,0,0,SRCCOPY); //顯示  


     

    方法二、用文件打開對話框選取圖片

    你建立一個基于對話框的程序,在主對話框上加載一個 PictureBox,然后加載一個Button,添加點擊Button事件。

    具體代碼如下:

     

    CFileDialog dlg(TRUE,"bmp",".bmp",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"位圖文件(*.BMP)|*.BMP||");

    dlg.DoModal();

    HBITMAP hBitmap;

     HDC hSrcDC;

     HDC hDesDC;

     CBitmap bmp;

    CWnd *hwnd;

    RECT rect;

    BITMAP bm;

     hwnd = GetDlgItem(IDC_STATIC);

     hDesDC = hwnd->GetDC()->m_hDC;

    hSrcDC = CreateCompatibleDC(hDesDC);

    hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); GetObject(hBitmap, sizeof BITMAP, &bm);

    SelectObject(hSrcDC, hBitmap);

     hwnd->GetClientRect(&rect);

    ::SetStretchBltMode(hDesDC,COLORONCOLOR);

     ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY); 
      直接用mfc自帶的static 圖片控件顯示bmp位圖資源 方法1:
       1) 更改屬性Picture Control屬性 
       2) 直接關聯上image: 設置Image屬性
       3) 更改type為Bitmap 
       
       方法2:(PictureEx類網上搜)
       1)添加控件變量為PictureEx對象
       2) 直接m_pic1.LoadBitmap(IDB_BITMAP1); 
      示例:
       1. 關聯 Picture Control 對象: m_stPicture
       2. 添加2個BMP資源 IDB_BITMAP1, IDB_BITMAP2
       3. 定義: HBITMAP m_hBitmap;
      4. 一開始顯示圖片
      

       BOOL CShowBmpDlg::OnInitDialog(){ 
       CDialog::OnInitDialog(); 
       ...... //顯示圖片 m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS); 
     m_stPicture.ModifyStyle(0xF, SS_BITMAP);
       m_stPicture.SetBitmap(m_hBitmap); 
       return TRUE;  // 除非設置了控件的焦點,否則返回 TRUE
      }

    5. 切換圖片
    void CShowBmpDlg::OnBnClickedOk(){

     static int nId = 0;
     nId++; 
     if (NULL != m_hBitmap)
     {  
      ::DeleteObject(m_hBitmap);
      m_hBitmap = NULL;
     } int nPicId = nId = nId % 2 ? IDB_BITMAP2 : IDB_BITMAP1; 
     m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(nPicId), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS); 
     m_stPicture.ModifyStyle(0xF, SS_BITMAP);
     m_stPicture.SetBitmap(m_hBitmap);
    }

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全