用双缓存绘制方法减少绘图时的闪屏
来源:互联网 发布:淘宝客服售后快捷短语 编辑:程序博客网 时间:2024/06/03 07:21
CClientDC dc(this);
CRect rClient;
GetClientRect(&rClient);
CBitmap MemBmp;
MemBmp.CreateCompatibleBitmap(&dc, rClient.Width(), rClient.Height());
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
CBitmap* pOldMemBmp = MemDC.SelectObject(&MemBmp);
CDC bmpDC;
bmpDC.CreateCompatibleDC(&dc);
CBitmap* pOldBitmap = bmpDC.SelectObject(CBitmap::FromHandle(m_hBgBmp));
MemDC.BitBlt(rClient.left, rClient.top, m_SizeBg.cx, m_SizeBg.cy, &bmpDC, 0, 0, SRCCOPY);
bmpDC.SelectObject(pOldBitmap);
pOldBitmap = NULL;
CString sText = "……";
CFont font;
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
lf.lfHeight = 14;
lf.lfWeight = FW_BOLD;
strcpy_s(lf.lfFaceName, LF_FACESIZE, "宋体");
font.CreateFontIndirect(&lf);
CFont* pOldFont = MemDC.SelectObject(&font);
MemDC.SetBkMode(TRANSPARENT);
MemDC.SetTextColor(RGB(255, 255, 255));
MemDC.TextOut(12, 8, sText);
MemDC.SelectObject(pOldFont);
font.DeleteObject();
DeleteDC(bmpDC);
dc.BitBlt(rClient.left, rClient.top, rClient.Width(), rClient.Height(), &MemDC, 0, 0, SRCCOPY);
MemDC.SelectObject(pOldMemBmp);
MemDC.DeleteDC();
MemBmp.DeleteObject();
- 用双缓存绘制方法减少绘图时的闪屏
- C#中双缓存绘图的实现方法
- C#中双缓存绘图的实现方法
- C#中双缓存绘图的实现方法
- 基于c#的双缓存技术绘图
- Java-GUI(5)绘图技术、常用的绘图方法、绘制图片
- 双缓存绘图GDI
- 双缓存绘图
- MFC 双缓存绘图
- 减少VoIP时延的方法
- 减少配置的方法
- MFC绘图CBitmap/HBITMAP/CImage/CStatic/CDC/HDC-绘制到Static的五种方法
- Android 绘图(一)——绘制直线的drawnline方法
- Windows编程 双缓存绘图
- 双缓存绘图(1)
- 双缓存绘图(2)
- VC GDI+双缓存绘图
- VC 双缓存绘图 闪屏
- 一劳永逸访问维基百科和blogspot的方法
- C#中日期与时间的格式
- C++Builder 5报错 "out of hash space"
- 双缓冲实现滚动文本
- 如何加密Web.Config中的连接字符串
- 用双缓存绘制方法减少绘图时的闪屏
- VC防止窗口和控件闪烁的方法
- 在DropDownList中显示树形结构
- 3D历史数据下载
- 类中的虚函数,通过指针获得vtable内容,然后通过函数指针指向虚函数并调用
- 存储过程实现无限级分类(1)
- 两部非常恶心恐怖片
- 存储过程实现无限级分类(2)
- 存储过程实现无限级分类(3)