StretchDIBits的问题!!显示不出来 本帖最后由 buzuohaoren 于 2010-01-23 14:28:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按你的程序思路,在dcmem里画完后还是要画到pDC中,干嘛不一步到位直接在pDC中画呢?如果一定要在dcmem中画,可以把pDC->BitBlt(0,0,nWidth/xSampleRatio, nHeight/ySampleRatio, &dcmem,0,0,SRCCOPY); 去掉,在OnDraw(...)中用如下代码: CRect updateRect; pDC->GetClipBox(updateRect); pDC->BitBlt(updateRect.left, updateRect.top, updateRect.Width(), updateRect.Height(), m_pDt, updateRect.left, updateRect.top, SRCCOPY);即可。 换成这样,还是老问题。“执行放大操作后,xSampleRatio=2,ySampleRatio=2,就只能显示1/4图像,到xSampleRatio=1,ySampleRatio=1的时候,就无法显示图像了,什么都没有了。int nn = StretchDIBits();即使在不能正常显示图像的情况下,这里返回的行数nn每次都是正确的9000。。” 多谢楼上的回答!!不是这样的,应该是都放大了,是滚动视图,可以完全显示的。如果不用内存DC,直接StretchDIBits(pDC->m_hDC)是没有问题的,放大都可以完全显示的。 Trace 看看你的MemDC选入的Bitmap是否没有Create成功啊? 请问这个错误怎么处理?? 关于成批处理菜单消息。。。 XML解析问题: COM初始化,_bstr_t问题 一个简单的问题(关于octet-stream) 测算工资水平的方法 如何在编辑框中输入一个字符,却显示另一个字符? 解决mouse右键单击,关于Cstatic类的继承的问题,up有分!!!!!!! 求vc编写波形程序 有谁用WINCE啊! 请教StackWalk64的使用,x86工程正常,x64出错 求注册表权限控制问题 InvalidateRect
如果一定要在dcmem中画,可以把
pDC->BitBlt(0,0,nWidth/xSampleRatio, nHeight/ySampleRatio,
&dcmem,0,0,SRCCOPY);
去掉,在OnDraw(...)中用如下代码:
CRect updateRect;
pDC->GetClipBox(updateRect);
pDC->BitBlt(updateRect.left, updateRect.top, updateRect.Width(), updateRect.Height(),
m_pDt, updateRect.left, updateRect.top, SRCCOPY);
即可。
“执行放大操作后,xSampleRatio=2,ySampleRatio=2,就只能显示1/4图像,到xSampleRatio=1,ySampleRatio=1的时候,就无法显示图像了,什么都没有了。int nn = StretchDIBits();即使在不能正常显示图像的情况下,这里返回的行数nn每次都是正确的9000。。”
不是这样的,应该是都放大了,是滚动视图,可以完全显示的。
如果不用内存DC,直接StretchDIBits(pDC->m_hDC)是没有问题的,放大都可以完全显示的。