求救,为什么我保存的位图是黑屏?谢谢!

ll42002 2003-12-03 09:24:31
在一个客户区画图,由于超过屏幕可显示的范围,所以不能用考屏的方法保存,
我的做法是先得到与屏幕设备环境兼容的内存区域,然后在内存中画图,最后将
在内存中的图保存。
请各位大侠看看这种方法可行吗?
如果可行,为什么我保存的图象是黑屏内?
谢谢!
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ItomCat 2003-12-04
  • 打赏
  • 举报
回复
CDC MemDC; //首先定义一个显示设备对象
CBitmap memBitmap;
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(pDC);
//下面建立一个与屏幕显示兼容的位图
memBitmap.CreateCompatibleBitmap(pDC,iWidth,iHeight);

//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&memBitmap);

//先用背景色将位图清除干净,这里是白色作为背景
MemDC.FillSolidRect(0,0,iWidth,iHeight,RGB(80,0,80));
//好了接着做你的事情吧...........
ll42002 2003-12-04
  • 打赏
  • 举报
回复
可是我在memDC中画图了呀,怎么是空的呀?
ll42002 2003-12-04
  • 打赏
  • 举报
回复
to ddddh
大侠,我是菜鸟,你说的我还是不太理解,能不能给个例子看看。分不够,我另开贴再加!谢谢!
我的邮箱是lilonglilong2002@163.com!
andone 2003-12-03
  • 打赏
  • 举报
回复
可行。把这段代码贴出来看看是不是代码问题
ddddh 2003-12-03
  • 打赏
  • 举报
回复
当然可行

不过记得一点,

// hdc 是Paint时候的hdc
HDC hmemdc = createcompatibleDC(hdc);
HBITMAP hBmp = CreateCompatibleBitmap(hdc); // 注意!!!这里的参数一定要是hdc,不能使hmemdc,因为缺省的dc是黑白单色的!!!!

SelectObject(hmemdc, hBmp);
...
ljzcom 2003-12-03
  • 打赏
  • 举报
回复
^_^,楼上的都说了
ddddh 2003-12-03
  • 打赏
  • 举报
回复
你必须crete一个bitmap选到你的memDC中!!
否则你的memDC是空的,当然是黑评了

记得用pDC来创建compatibleBitmap。
ll42002 2003-12-03
  • 打赏
  • 举报
回复
这就是我的绘图程序,大家帮忙看看!谢谢!

HDC hScrDC, hMemDC,hScrDC1;
HBITMAP hBitmap, hOldBitmap;

CDC pDC;
pDC.CreateDC("DISPLAY", NULL, NULL, NULL);
CDC memDC;
//创建兼容的设备环境
memDC.CreateCompatibleDC(&pDC);
DeleteDC(pDC);
CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0);
memDC.SelectObject(&newPen);
//画图程序
。。。。。。。。。。。
//保存
CRect rc;
hScrDC = memDC.GetSafeHdc();
hMemDC = CreateCompatibleDC(hScrDC);


hBitmap = CreateCompatibleBitmap
(hScrDC, 2000, 2000);

hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);

BitBlt(hMemDC, 0, 0, nWidth, nHeight,
hScrDC, 0, 0, SRCCOPY);

hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);

//写入文件程序
SaveBitmapToFile(hBitmap, "save.bmp");

DeleteDC(hScrDC);
DeleteDC(hMemDC);

19,469

社区成员

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

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