2011-11-19 72 views
1

所以,我正在使用文本编辑器。我使用双缓冲来画到屏幕上。所以基本上我有一个离线位图,我将其绘制,然后将其复制到屏幕上。现在,当文本编辑器的窗口调整大小时,我还需要调整离屏位图的大小。那么调整位图大小的好方法是什么?我想可能会删除旧的对象,并使用CreateCompatibleBitmap创建一个新的位图,但我想知道这是否是正确的方法。在Windows中调整位图大小的最佳方法是什么?

语言:C++使用Win32 API

+0

语言?我把它作为C++或C,但是... – Ryan

+0

为什么你需要调整它的大小?这听起来像是需要时间,我看不到效益。 –

+0

@DavidHeffernan:推测用于后台缓冲区的位图大小与窗口大小相同。如果窗口增长,那么代码将需要更大的后台缓冲区。后台缓冲区可以制作得和虚拟桌面一样大,但可能会非常大。此外,将大量位图的一部分进行blitting可能效率低下,并且桌面大小可能会发生变化,因此您仍然必须处理调整大小。平铺的方法可能会受到撕裂和闪烁的影响,从而无法使用后台缓冲区。 –

回答

3

使用CreateCompatibleBitmap将工作,然后你要调用它BitBlt到您现有的后备缓冲区的内容复制到缓冲区大小。我不认为有一种更有效的方式来使用GDI。

相关问题