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

相关推荐
99乘法口诀万物皆可变几秒前
PcanToVectorXL_V01:打通 Vector 与 PCAN 的双向 CAN/CAN‑FD 桥梁
c++·学习
liulun15 分钟前
C++ WinRT中的事件
开发语言·c++
whitelbwwww30 分钟前
c++运行onnx模型
开发语言·c++
C路在脚下2 小时前
HSMS 连接总失败?排查这 5 个配置点
c++·嵌入式硬件
郝学胜_神的一滴2 小时前
Qt 高级编程 034:深耕QWidget底层内核—彻底吃透无边框窗口设计核心原理
c++·qt
QiLinkOS2 小时前
第三视觉理解徐玉生与他的商业活动(26)
大数据·c++·人工智能·算法·开源协议
chase_my_dream3 小时前
FAST-LIO src/IMU_Processing.hpp 完整详细讲解
c++·状态模式·slam
旖-旎3 小时前
《LeetCode 1137 第N个泰波那契数 和 LeetCode 三步问题》
c++·算法·leetcode·动态规划
c++之路3 小时前
C++跨平台(九):跨平台字节序统一处理
开发语言·arm开发·c++
ysa0510304 小时前
【并查集】判环,深搜
数据结构·c++·算法·深度优先