這個是顯示圖片的代碼:
void CMFCApplication1Dlg::OnBnClickedButton1()
{
using namespace cv;
using namespace std;
Mat mat = imread("G:\\STUDY\\編程\\2.png");//opencv讀取圖片
imwrite("G:\\STUDY\\編程\\2_new.png", mat);//保存opencv圖片
CImage img;
img.Load(L"G:\\STUDY\\編程\\2_new.png");//mfc讀取圖片
int img_w = img.GetWidth(), img_h = img.GetHeight();//獲取圖片寬高
UpdateWindow();//重繪視窗
CRect rect;//定義矩形類
CWnd* pWnd = GetDlgItem(IDC_STATIC);//獲取控制元件句柄
pWnd->GetClientRect(&rect); //獲取句柄指向控制元件區域的大小
CDC* pDc = pWnd->GetDC();//獲取picture的DC
int win_w = rect.Width(), win_h = rect.Height();//獲取視窗寬高
pDc->SetStretchBltMode(COLORONCOLOR);
img.Draw(pDc->m_hDC, 0, 0, win_w, win_h, 0, 0, win_w, win_h);//畫出圖片
ReleaseDC(pDc);
// TODO: 在此添加控制元件通知處理程式代碼
}
點擊顯示圖片后只能出現圖片的一橫條,沒有顯示到picture control里。無法顯示全部,在線求解!!
uj5u.com熱心網友回復:
你把picture控制元件的id改一下,不要還叫IDC_STATICuj5u.com熱心網友回復:
有道理 IDC_STATIC = -1 !uj5u.com熱心網友回復:
需要怎么該,把picture控制元件的id改成任意別的都可以嗎,代碼里還需不需要跟著變
uj5u.com熱心網友回復:
我只把picture控制元件id改為IDC_ShowImg沒有用,跟不改是一個效果
uj5u.com熱心網友回復:
opencv 問題 ?能改 gdi++ ?
uj5u.com熱心網友回復:
不懂,怎么改,,,,我是個小白。
uj5u.com熱心網友回復:
https://blog.csdn.net/youyingbo/article/details/80688202uj5u.com熱心網友回復:
改改這里試試 pDc->SetStretchBltMode(COLORONCOLOR);轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/13547.html
標籤:界面
上一篇:MFC中呼叫DLL中以非模態方式創建的對話框,不能使用復制粘貼的快捷方式,使用hook的方式,可以使用快捷鍵,但是復制粘貼時,會產生多次粘貼
