MFC中图片在picture control中显示图片出现有关问题
MFC中图片在picture control中显示图片出现问题
CImage image; //创建图片类
image.Load(strPath); //根据图片路径加载图片
CRect rect;//定义矩形类
int cx = image.GetWidth();//获取图片宽度
int cy = image.GetHeight();//获取图片高度
GetDlgItem(IDC_PICTURE)->GetWindowRect(&rect);//将窗口矩形选中到picture控件上 ScreenToClient(&rect);//将客户区选中到Picture控件表示的矩形区域内
GetDlgItem(IDC_PICTURE)->MoveWindow(rect.left,rect.top,cx,cy,TRUE);//将窗口移动到Picture控件表示的矩形区域
CWnd *pWnd=GetDlgItem(IDC_PICTURE);//获得pictrue控件窗口的句柄
pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域
CDC *pDC=pWnd->GetDC();//获得pictrue控件的DC
image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域
ReleaseDC(pDC);//释放picture控件的DC
在文档中显示了图片,但是与之右边的背景图片变成空白一片,个人觉得读取的图片太大,导致右边背景图片失去显示。有指导有什么办法。或者怎么加panel,请指教
------解决方案--------------------
CSize sizeFileDib; //获取DIB的尺寸
CRect rect;
m_ctrlBmp.GetClientRect(&rect);
sizeFileDib.cx = rect.Width();
sizeFileDib.cy = rect.Height();
CDC dc; //不能用指针
dc.Attach(m_hDC2);//显示DIB
m_dib.Draw(&dc, CPoint(0, 0), sizeFileDib);
Invalidate(TRUE);
------解决方案--------------------
通过Load或者LoadFromResource载入图片资源,用Draw在对应的控件上画出。
CImage image; //创建图片类
image.Load(strPath); //根据图片路径加载图片
CRect rect;//定义矩形类
int cx = image.GetWidth();//获取图片宽度
int cy = image.GetHeight();//获取图片高度
GetDlgItem(IDC_PICTURE)->GetWindowRect(&rect);//将窗口矩形选中到picture控件上 ScreenToClient(&rect);//将客户区选中到Picture控件表示的矩形区域内
GetDlgItem(IDC_PICTURE)->MoveWindow(rect.left,rect.top,cx,cy,TRUE);//将窗口移动到Picture控件表示的矩形区域
CWnd *pWnd=GetDlgItem(IDC_PICTURE);//获得pictrue控件窗口的句柄
pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域
CDC *pDC=pWnd->GetDC();//获得pictrue控件的DC
image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域
ReleaseDC(pDC);//释放picture控件的DC
在文档中显示了图片,但是与之右边的背景图片变成空白一片,个人觉得读取的图片太大,导致右边背景图片失去显示。有指导有什么办法。或者怎么加panel,请指教
------解决方案--------------------
CSize sizeFileDib; //获取DIB的尺寸
CRect rect;
m_ctrlBmp.GetClientRect(&rect);
sizeFileDib.cx = rect.Width();
sizeFileDib.cy = rect.Height();
CDC dc; //不能用指针
dc.Attach(m_hDC2);//显示DIB
m_dib.Draw(&dc, CPoint(0, 0), sizeFileDib);
Invalidate(TRUE);
------解决方案--------------------
CImage myimg;
CDC *pdc;
RECT myrect;
pdc = GetDlgItem(IDC_PIC_2)->GetWindowDC();
GetDlgItem(IDC_PIC_2)->GetClientRect(&myrect);
myimg.LoadFromResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
myimg.Draw(pdc->m_hDC,myrect);
通过Load或者LoadFromResource载入图片资源,用Draw在对应的控件上画出。