2011-11-19 71 views
1

所以,我正在使用文本編輯器。我使用雙緩衝來畫到屏幕上。所以基本上我有一個離線位圖,我將其繪製,然後將其複製到屏幕上。現在,當文本編輯器的窗口調整大小時,我還需要調整離屏位圖的大小。那麼調整位圖大小的好方法是什麼?我想可能會刪除舊的對象,並使用CreateCompatibleBitmap創建一個新的位圖,但我想知道這是否是正確的方法。在Windows中調整位圖大小的最佳方法是什麼?

語言:C++使用Win32 API

+0

語言?我把它作爲C++或C,但是... – Ryan

+0

爲什麼你需要調整它的大小?這聽起來像是需要時間,我看不到效益。 –

+0

@DavidHeffernan:推測用於後臺緩衝區的位圖大小與窗口大小相同。如果窗口增長,那麼代碼將需要更大的後臺緩衝區。後臺緩衝區可以製作得和虛擬桌面一樣大,但可能會非常大。此外,將大量位圖的一部分進行blitting可能效率低下,並且桌面大小可能會發生變化,因此您仍然必須處理調整大小。平鋪的方法可能會受到撕裂和閃爍的影響,從而無法使用後臺緩衝區。 –

回答

3

使用CreateCompatibleBitmap將工作,然後你要調用它BitBlt到您現有的後備緩衝區的內容複製到緩衝區大小。我不認爲有一種更有效的方式來使用GDI。

相關問題