缘起:需要在MFC Static控件上显示持续变化的数据,控件背景为某种格式的背景图片的一部分。
之前已经试了双缓冲,确实是能够很好的避免闪烁。因为双缓冲需要用到兼容位图,但是又苦于不知道如何将图片的某一部分复制给该位图,恰巧又使用到Graphics::DrawImage(),其对于图片的截取操作是很方便的,具体可以搜下。
那么如何做呢?
假如我的背景图片是bg.bmp/bg.png等等格式都可以
那么我可以
Image img1(L"bg.png");
//或者Bitmap img2(L"bg.bmp");
因为使用了双缓冲,则需要使用兼容DC,先在内存中画好需要的图片内容+文字,再复制到原始DC中,总得结果就是这样做速度快,可以避免了闪烁。