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 分钟前
map&set
c++
小鹏编程1 小时前
【C++教程】C++中的基本数据类型
开发语言·c++·教程·少儿编程
熊峰峰1 小时前
C++第十节:map和set的介绍与使用
开发语言·c++
Antonio9151 小时前
【网络编程】事件选择模型
网络·c++
程序员Linc2 小时前
用OpenCV写个视频播放器可还行?(C++版)
c++·opencv·音视频·opencv 4.11
决斗小饼干2 小时前
并发编程知识总结
c++
Andlin3 小时前
《CMakeList 知识系统学习系列(三):函数和宏》
c++
Forget the Dream3 小时前
设计模式之迭代器模式
java·c++·设计模式·迭代器模式
️Carrie️3 小时前
10.2 继承与多态
c++·多态·继承
Nicole Potter3 小时前
内存泄漏出现的时机和原因,如何避免?
c++·游戏·面试·c#