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

zhoukang326 2008-10-21 11:27:36
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(),但是得到的不是我要的区域。
...全文
783 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kittyhuaner 2008-11-17
  • 打赏
  • 举报
回复
bmp.CreateCompatibleBitmap(&dcmem,rc.Width(),rc.Height());


-->

bmp.CreateCompatibleBitmap(&dcm,rc.Width(),rc.Height());
zhoukang326 2008-10-31
  • 打赏
  • 举报
回复
我是按照这样的设置进行的。
其他的也就不太清楚了啊!!!
所有的程序都在那里。。所以就比较郁闷。
  • 打赏
  • 举报
回复
图像是黑的说明像素没赋值。不知道你截屏后的数据放哪了,应该把这些数据赋给你的BMP。
zhoukang326 2008-10-24
  • 打赏
  • 举报
回复
怎么一直没有人理啊!!急死了。。。
zhoukang326 2008-10-21
  • 打赏
  • 举报
回复
目的在于保存图像。
如果上述方法不对,那位高手有好的方法,本人不胜感激。
若可以提供可以显示IPicture对象的源码最好。
谢谢各位了。

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧