双缓存写屏代码

本文介绍了如何使用内存设备上下文(DC)进行图形绘制,包括创建兼容的位图、选择字体、填充区域以及将绘制内容复制到前台窗口。

  CClientDC pDC(this);
  CRect rectmem(0,0,210,30);
   CDC dcMem; //用于缓冲作图的内存DC
  CBitmap bmp; //内存中承载临时图象的位图

  dcMem.CreateCompatibleDC(&pDC); //依附窗口DC创建兼容内存DC
  bmp.CreateCompatibleBitmap( &pDC , rectmem.Width() , rectmem.Height() );//创建兼容位图
  dcMem.SelectObject( &bmp ); //将位图选择进内存DC
 
  dcMem.FillSolidRect( rectmem, ::GetSysColor(COLOR_3DFACE) );
  
        COLORREF clrOld = dcMem.SetTextColor( text_color ); 
  
        CFont font;
        font.CreatePointFont(190,"隶书",NULL);//选择字体
        CFont *Oldfont=dcMem.SelectObject(&font);//保存旧字体

        dcMem.DrawText(b_str,rectmem,DT_WORDBREAK|DT_LEFT);  

        dcMem.SetTextColor(clrOld);  

  pDC.BitBlt(170,130,200,80,&dcMem,0,0,SRCCOPY);//将内存DC上的图象拷贝到前台

     dcMem.SelectObject(Oldfont);
  font.DeleteObject(); 

  dcMem.DeleteDC(); //删除DC
  bmp.DeleteObject(); //删除位图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值