出處:http://www.cnblogs.com/Forever-Road/p/6800838.html?utm_source=itdadao&utm_medium=referral
MFC——選擇圖片顯示到Picture Control
//綁定button的事件處理函數 void CloadfileDlg::OnBnClickedButton1() { //進度條置爲零 //CProgressCtrl *prgs = (CProgressCtrl *)GetDlgItem(IDC_PROGRESS); //prgs->SetPos(0); //選擇圖片 CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("image Files(*.bmp; *.jpg;*.png)|*.JPG;*.PNG;*.BMP|All Files (*.*) |*.*||"), this); fileDlg.DoModal(); //獲取圖片路徑和圖片名稱 strFilePath = fileDlg.GetPathName(); strFileName = fileDlg.GetFileName(); //判斷路徑不爲空 if (strFilePath == _T("")) { return; }
CImage image; image.Load(strFilePath); //以下兩個矩形主要作用是,獲取對話框上面的Picture Control的width和height, //並設置到圖片矩形rectPicture,根據圖片矩形rectPicture對圖片進行處理, //最後繪製圖片到對話框上Picture Control上面 CRect rectControl; //控件矩形對象 CRect rectPicture; //圖片矩形對象 int x = image.GetWidth(); int y = image.GetHeight(); //Picture Control的ID爲IDC_IMAGE CWnd *pWnd = GetDlgItem(IDC_IMAGE); pWnd->GetClientRect(rectControl); CDC *pDc = GetDlgItem(IDC_IMAGE)->GetDC(); SetStretchBltMode(pDc->m_hDC, STRETCH_HALFTONE); rectPicture = CRect(rectControl.TopLeft(), CSize((int)rectControl.Width(), (int)rectControl.Height())); ((CStatic*)GetDlgItem(IDC_IMAGE))->SetBitmap(NULL); //以下兩種方法都可繪製圖片 //image.StretchBlt(pDc->m_hDC, rectPicture, SRCCOPY); //將圖片繪製到Picture控件表示的矩形區域 image.Draw(pDc->m_hDC, rectPicture); //將圖片繪製到Picture控件表示的矩形區域 image.Destroy(); pWnd->ReleaseDC(pDc); }
運行結果:點擊選擇圖片按鈕,選擇圖片後,圖片在Picture Control上展示
既然選擇了遠方,便只顧風雨兼程
分類: MFC