MFC使用双缓冲实现绘制字符串防闪烁

有时在性能比较低的操作系统上实现绘制文字实时变化时,会出现字体闪烁问题,下面通过双缓冲技术,先的要显示的文字绘制到缓冲区,然后再将显示出来,代码如下:

CClientDC dc(this);

CDC MemDC;

MemDC.CreateCompatibleDC(&dc);

CFont * pold_font=MemDC.SelectObject(&Font2);

CSize txtpot=MemDC.GetTextExtent(strMsg);

int x = 341-txtpot.cx;

int y = 308;

MemDC.SetBkColor(RGB(255,255,255));

MemDC.SetTextColor(RGB(0,0,0));

CBitmap MemBitmap;

MemBitmap.CreateCompatibleBitmap(&dc,txtpot.cx,txtpot.cy);

CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);

MemDC.TextOutA(0,0,strMsg);

MemDC.SelectObject(pold_font);

dc.BitBlt(x,y,txtpot.cx,txtpot.cy,&MemDC,0,0,SRCCOPY);

MemBitmap.DeleteObject();

MemDC.DeleteDC();

技术交流请加群:996775415

相关推荐
diediedei7 分钟前
C++中的适配器模式变体
开发语言·c++·算法
天赐学c语言20 分钟前
1.25 - 零钱兑换 && 理解右值以及move的作用
c++·算法·leecode
北冥湖畔的燕雀23 分钟前
C++智能指针:告别内存泄漏的利器
c++·算法
CSDN_RTKLIB23 分钟前
【编码实战】源字符集设置
c++
安全二次方security²27 分钟前
CUDA C++编程指南(7.5&6)——C++语言扩展之内存栅栏函数和同步函数
c++·人工智能·nvidia·cuda·内存栅栏函数·同步函数·syncthreads
D_evil__1 小时前
【Effective Modern C++】第三章 转向现代C++:10. 优先选用限域枚举,而非不限域枚举
c++
是娇娇公主~1 小时前
算法——【最长回文子串】
c++·算法
你撅嘴真丑1 小时前
计算2的N次方 和 大整数的因子
数据结构·c++·算法
孞㐑¥1 小时前
算法—前缀和
c++·经验分享·笔记·算法
CSDN_RTKLIB1 小时前
【编码实战】编译器解码编码过程
c++