这样保存图像为什么出来全是黑色的?


HDC dch; 
picture->get_CurDC(&dch); 
CRect rc; 
CBitmap bmp; 
GetClientRect(&rc); 
CDC dcmem,dcm; 
dcm.Attach(dch); 
dcmem.CreateCompatibleDC(&dcm); 
bmp.CreateCompatibleBitmap(&dcmem,rc.Width(),rc.Height()); 
dcmem.SelectObject(&bmp); 
dcmem.BitBlt(0,0,rc.Width(),rc.Height(),&dcm,0,0,SRCCOPY); 

然后保存,显示。原来的程序显示截屏没有任何问题。就是上面的程序CClientDC dc(this),而后显示。但是我想显示IPicture指示的对象,就不行了。 
其中,picture->get_CurDC(&dch);是将图像的DC取出,因为使用的是IPicture指针,返回的是hdc格式。 
所以我将其转换成为CDC,然后使用BMP去画,为什么不行呢?
请高人帮忙。任务快交了。只剩这点了。怎么都搞不定。我写的有问题吗?

另外,在拷屏程序中,怎么确定我只考固定区域啊!!
我试图修改里面的rc.Width(),rc.Height(),但是得到的不是我要的区域。

5 个解决方案

#1


目的在于保存图像。
如果上述方法不对,那位高手有好的方法,本人不胜感激。
若可以提供可以显示IPicture对象的源码最好。
谢谢各位了。

#2


怎么一直没有人理啊!!急死了。。。

#3


图像是黑的说明像素没赋值。不知道你截屏后的数据放哪了,应该把这些数据赋给你的BMP。

#4


我是按照这样的设置进行的。
其他的也就不太清楚了啊!!!
所有的程序都在那里。。所以就比较郁闷。

#5


bmp.CreateCompatibleBitmap(&dcmem,rc.Width(),rc.Height()); 


-->

bmp.CreateCompatibleBitmap(&dcm,rc.Width(),rc.Height()); 
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告