CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请教画图处理!!

楼主whirl()2002-05-23 15:21:52 在 VC/MFC / 基础类 提问

画图时,数据一多,明显看得出画图的过程,就是一笔一划得慢慢生成,怎么才可让它一次显示出整张图阿? 问题点数:100、回复次数:8Top

1 楼ma2jun()回复于 2002-05-23 15:49:07 得分 0

我个人认为,这是矢量图绘制肯定避免不了的问题,如果用内存DC虽然不是一笔一划,可以闪烁太厉害。看看autocad也是如此。  
   
  唯一能改善的就是优化绘制代码。Top

2 楼whirl()回复于 2002-05-23 16:07:06 得分 0

问一下,内存DC怎么用阿?Top

3 楼zPerry(旧日重来)回复于 2002-05-23 16:15:04 得分 30

HDC   hMemDC=CreateDC(hdc)  
  CreateBitmapCompatible()  
  再SelectObject()将位图选入hMemDC  
  在内存DC中画图,再BitBlt()拷入窗口中  
  用后将hMemDC和位图DeleteTop

4 楼littleid(小id)回复于 2002-05-23 16:17:29 得分 50

CPoint   point;  
  CRect   rect;  
  GetClientRect(rect);  
  CDC   memDC;  
          CPen   newPen;  
  CBitmap   bmp;  
  bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());  
          memDC.CreateCompatibleDC(pDC);  
          memDC.SelectObject(bmp);  
  memDC.SelectStockObject(WHITE_PEN);  
          memDC.MoveTo(1,1);  
  memDC.LineTo(100,100);  
          pDC->BitBlt(0,0,   rect.Width(),rect.Height(),&memDC,   0,0,SRCCOPY   );  
   
  这一段代码实现了画一条线段的功能。Top

5 楼littleid(小id)回复于 2002-05-23 16:24:07 得分 0

以上代码加在ondraw里就行Top

6 楼smallwei()回复于 2002-05-23 16:25:38 得分 20

你要想不闪烁,可以先创建一张和你绘图区域相同大小的位图,然后在这张图上画你要画的内容,全部画好了就把整张位图BLT到你的绘图区,可以减少闪烁,但这样做也有缺点,就是在你没有画完之前是什么也看不到的!如果你的绘图过程非常的耗时,你只有修改你的绘图算法或者用DX...Top

7 楼Q_O()回复于 2002-05-23 16:26:12 得分 0

先在内存DC里面画好。再copy到屏幕上去。Top

8 楼neophyte(vc++_help)回复于 2002-05-23 16:29:52 得分 0

先在内存中画好!  
  而后呢??  
  再!!  
  bitblt()  
  上去,肯定看不出来的!!  
  不信你可以try!!  
  Top

相关问题

  • StretchBlt画图失真应该如何处理呀?
  • 求教图形图像处理高手:如何实现画图软件的多层(layer)处理??
  • 画图!!
  • 画图
  • 画图
  • 画图
  • 画图
  • 求教图形图像处理高手:如何实现附件-〉画图 中的填充??
  • 关于画图
  • 关于画图?

关键词

  • 内存
  • dc
  • memdc
  • 绘图
  • hmemdc
  • rect
  • bitblt
  • 闪烁
  • 画
  • 内存dc

得分解答快速导航

  • 帖主:whirl
  • zPerry
  • littleid
  • smallwei

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo