CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

透明绘图的另类问题。高手请来。不是普通的透明绘图能解决的

楼主ydbcsdn(我恨我痴心)2006-05-03 13:19:52 在 VC/MFC / ATL/ActiveX/COM 提问

我使用了MEMDC(我改过了)。我设置了一个定时器。我想实现透明绘图到控件上。但我我不想在控件上显示除我要的图形外的任何其他背景。。。。。。比如我就只要画个圆,而且要在很高刷新状态不闪。  
  void   CClockSta::OnPaint()  
  {  
   
  CPaintDC   dc(this);   //   device   context   for   painting  
  //   TODO:   在此处添加消息处理程序代码  
  //   不为绘图消息调用   CStatic::OnPaint()  
   
  GetClientRect(&m_rect);          
  CTime   time_cuurent;  
  time_cuurent=CTime::GetCurrentTime();  
  m_strTime=time_cuurent.Format("%Y   年   %m   月   %   日   %H   :   %M   :   %S   ");  
   
  CMemDC   pdc(&dc,m_rect); //默认位图是全黑色的  
      pdc.SelectObject(this->m_brushBlue);  
  pdc.SelectObject(this->m_pen);  
   
  CRect   rect=m_rect;  
  rect.DeflateRect(1,1);  
   
  pdc.RoundRect(rect,CPoint(5,5));  
  pdc.SetBkMode(TRANSPARENT);  
  pdc.SetTextColor(m_TXcolor);  
  pdc.DrawText(m_strTime,rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE   );//DT_VCENTER|必须和DT_SINGLELINE一起  
   
  CMemDC   pdc2(&dc,m_rect); //这个是屏蔽图,需要把底色设置为白色  
  pdc2.FillSolidRect(m_rect,RGB(255,255,255));  
  pdc2.SetROP2(R2_BLACK);  
  pdc2.SelectObject(this->m_brushBlue);  
  pdc2.SelectObject(this->m_pen);  
   
  pdc2.RoundRect(rect,CPoint(5,5));  
  pdc2.SetBkMode(TRANSPARENT);  
  pdc2.SetTextColor(RGB(0,0,0));  
  pdc2.DrawText(m_strTime,rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE   );  
  pdc2.BitBlt(SRCAND);//执行AND运算  
  pdc.BitBlt(SRCPAINT);//执行OR运算          
   
  }  
   
  当我设置SetTimer(1,1,0)的时候,很屏幕很闪。。。  
  pdc2.BitBlt(SRCAND);//执行AND运算  
  pdc.BitBlt(SRCPAINT);//执行OR运算      
  上面两句我随便注释掉一句问题,就不闪了。  
  问题点数:20、回复次数:2Top

1 楼xhzxlqt(人这一辈子)回复于 2006-05-03 16:05:43 得分 20

CMemDC是你自己定义的?!  
  从你的代码看,  
  pdc2.BitBlt(SRCAND);//执行AND运算  
  pdc.BitBlt(SRCPAINT);//执行OR运算    
  都是在向显示DC执行BitBlt操作?     如果是这样,由于你两次的时间间隔非常短,故会闪得非常厉害.因此也出现了你随便注释一句便不闪的现象.  
   
  你是不是可以先将要显示的图形在MEMDC中准备完成后再整体复制到显示DC中?  
   
  Top

2 楼ydbcsdn(我恨我痴心)回复于 2006-07-11 15:27:52 得分 0

问题我自己已解决....谢谢各位Top

相关问题

关键词

得分解答快速导航

  • 帖主:ydbcsdn
  • xhzxlqt

相关链接

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

广告也精彩

反馈

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