c++ - 使用多线程绘制 GDI+ 图形对象

标签 c++ multithreading gdi+

我有一个应用程序,我在其中绘制了数千个不同大小的矩形。现在在这里,我给出了那些矩形的用户选择,我只是在那个特定的矩形上绘制旋转边框......(矩形选择上的行进 Ant 动画)。

现在,如果用户选择的矩形很少,则不会造成这样的麻烦,但是一旦用户一次选择全部或多个矩形,则重绘会显示闪烁的效果,这看起来不太好,甚至 Not Acceptable 。

我想让它并行化,这样我就可以从中获得性能。

最佳答案

我建议你使用双缓冲:创建一个 memory DC , 在其上绘制然后执行 BitBlt在真正的 DC 上。您可以在 Internet 上找到很多关于此技术的示例。

您也可以引用这篇 msdn 文章:Flicker-Free Displays Using an Off-Screen DC

关于c++ - 使用多线程绘制 GDI+ 图形对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10221950/

相关文章:

c++ - 如何使用 Qt QImage 和 QBrush 渲染自定义背景?

c# - GDI+ 中出现一般性错误

C# 生成图像中没有灰度值/噪声的二进制掩码?

c++ - POSIX部分写入,线程安全性和锁定

c++ - SDL 1.2 与树莓派

c++ - 观察中心时围绕球体旋转相机(使用四元数)

c++ - 使用 pthread_win32 增加进程优先级

c++ - OpenMP 线程、数据访问延迟和 STL 数据容器

python - 我正在尝试在 python 中运行一个线程,但没有看到输出

c# - 多线程系统.Windows.图形