3

我正在 MFC 中构建康威的生活游戏。我在使用 Allegro 之前构建了它,并想使用 MFC 进行尝试。所以我开始迁移算法和东西。它使用一个内核渲染得很好,它的生命游戏算法非常漂亮,就像在 allegro 中一样。康威的人生游戏由使用pDC->rectangle(x1, y1, x2, y2)绘制的小矩形组成。

我的问题实际上是两个,一个是每次我调用 pDC->rectangle(...) 时它都会立即绘制它,从而导致这种连锁反应渲染风格。我希望它在完成工作时显示(我知道你可以在 directx 中做到这一点,但我只想使用 MFC 的设备上下文来做到这一点)。

另一个问题是标题,可能是我的主要问题。你如何使用并发的 pDC,我试过了,它做了一些奇怪的事情。我知道我不能在 OnDraw 中并发使用 pDC,因为它是相同的设备上下文,占用相同的内存,但在我的 6 核中使用。就是这样,提前谢谢。

4

1 回答 1

1

为避免立即绘制,您可以在内存中绘制位图,然后在完成后在真实 dc 上进行 blit。看看这里作为起点,或者查看 CodeProject 上的这篇文章。对于多线程部分,您应该能够在多个线程的内存设备上下文中使用相同的内容,只需确保正确协调该共享 DC 的创建和 blitting/release。

于 2012-09-03T18:19:19.857 回答