2 xianxianagain xianxianagain 于 2014.12.18 16:06 提问

MFC使用 CImage贴图失真
mfc

MFC使用 CImage来贴图在控件上,但是有的时候会失真,有什么解决办法吗

2个回答

lx624909677
lx624909677   Ds   Rxr 2014.12.18 16:10
已采纳

这样试试
CWnd* pWnd;
pWnd=GetDlgItem(IDC_IMAGE1);
CDC* pDC=pWnd->GetDC();
HDC hDC = pDC->m_hDC;

CRect rect_frame;
CImage image;
pWnd->GetClientRect(&rect_frame);
image.Load(fileName);

::SetStretchBltMode(hDC,HALFTONE);
::SetBrushOrgEx(hDC,0,0,NULL);

image.Draw(hDC,rect_frame);
ReleaseDC(pDC);//释放picture控件的DC

Saber190919
Saber190919 谢谢,完美解决了我一晚上的问题,不过我出现的问题是我没有使用Picture Control控件,直接显示在对话框中,问题是,居然可以用,但是会有红色的点出现。看了你这个回答我才发现问题
9 个月之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.18 16:58

失真只要分为两方面,一个是色彩失真,一个是尺寸失真。不知道你说的是什么

如果是色彩失真,检查下图片的格式以及你使用的调色板是否有问题。

如果是尺寸失真,检查下图片的长宽像素,按照一定的比例去绘制。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!