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

相关推荐
茉莉玫瑰花茶21 分钟前
C++17 详细特性解析(中)
开发语言·c++
安全二次方security²35 分钟前
CUDA C++编程指南(7.19&20)——C++语言扩展之Warp投票函数和Warp匹配函数
c++·人工智能·nvidia·cuda·投票函数·匹配函数·vote
Trouvaille ~1 小时前
【Linux】进程信号(三):信号捕捉与操作系统运行原理
linux·运维·服务器·c++·操作系统·信号·中断
哈哈不让取名字1 小时前
分布式日志系统实现
开发语言·c++·算法
知无不研1 小时前
实现一个整形栈
c语言·数据结构·c++·算法
ShineWinsu2 小时前
对于C++:模版初阶的解析
开发语言·c++·面试·笔试·函数··模版
Max_uuc2 小时前
【C++ 硬核】告别 Excel 生成数组:利用 constexpr 实现编译期计算查找表 (LUT)
开发语言·c++·excel
m0_748248652 小时前
C++正则表达式攻略:从基础到高级应用
java·c++·正则表达式
退休钓鱼选手3 小时前
[CommonAPI + vsomeip]通信 原理 1
c++·自动驾驶
CSDN_RTKLIB3 小时前
【字符编码】源文件编码与字符字节序列
c++