[WTL/ATL]_[Gdi/Gdiplus]_[实现双缓冲]

场景

  1. 使用Gdi绘制文本,线条或图片(Gdiplus)时,如果HDC调用的次数过多,就会出现闪烁的现象, 怎么解决?

  2. 如果我用Gdiplus::Graphics进行绘制文本,线条或图片时, 不使用HDC的相关DrawText方式时, 又如何解决闪烁问题?

说明

  1. WTL提供了CDC类对HDC进行封装处理, 比如常用到的CMemoryDC,CClientDC,CPaintDC等. CMemoryDC用在双缓冲绘制中, CClientDC用在进行非WM_PAINT消息的文本宽度, 高度计算. CPaintDC用在WM_PAINT消息里对hdc进行封装.

  2. 自从Gdiplus出现后, 随之新增的Gdiplus::Graphics也具备了这类的功能, 可以说Gdiplus::Graphics是以C++类的方式对Gdi的常用操作的封装, 并新增了一些特性. 没错, 在Gdiplus出现前, 如果不说MFC,对HDC的操作全部是Win32 api方式的操作, 麻烦还不好记.

代码

HDC双缓冲(Gdi)

你可能感兴趣的:(ATL/WTL界面开发,GDI+编程日积月累)