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 个解决方案
目的在于保存图像。
如果上述方法不对,那位高手有好的方法,本人不胜感激。
若可以提供可以显示IPicture对象的源码最好。
谢谢各位了。
图像是黑的说明像素没赋值。不知道你截屏后的数据放哪了,应该把这些数据赋给你的BMP。
我是按照这样的设置进行的。
其他的也就不太清楚了啊!!!
所有的程序都在那里。。所以就比较郁闷。
bmp.CreateCompatibleBitmap(&dcmem,rc.Width(),rc.Height());
-->
bmp.CreateCompatibleBitmap(&dcm,rc.Width(),rc.Height());