我想知道,如果我想創建不同的位圖,CreateCompatibleBitmap Vs的選擇對象
我一次又一次地使用CreateCompatibleBitmap
功能,它關聯到相同的內存CDC。
它是一樣的意思,我CreateBitmap
和SelectObject
一遍又一遍?
我問這個問題,因爲我想對另一個CDC新創建的位圖做些什麼。
我想知道,如果我想創建不同的位圖,CreateCompatibleBitmap Vs的選擇對象
我一次又一次地使用CreateCompatibleBitmap
功能,它關聯到相同的內存CDC。
它是一樣的意思,我CreateBitmap
和SelectObject
一遍又一遍?
我問這個問題,因爲我想對另一個CDC新創建的位圖做些什麼。
沒有看到具體的代碼,很難知道確切的問題,但CreateCompatibleBitmap通常用於雙緩衝的情況以避免閃爍。您不是直接繪製設備上下文(DC),而是先將其繪製到基本上繪製爲位圖的離屏或內存DC上。然後使用BitBlt將位圖直接複製到屏幕DC,因此看起來像所有繪圖都是同時發生的。
通常的步驟是這樣的(也可能會發生在每個WM_PAINT):
CreateCompatibleBitmap
。BitBlt
內存DC的位圖到屏幕DC。的更多信息可在這裏:Guide to Win32 Memory DC (Code Project)
是,CreateCompatibleBitmap()創建一個新的位圖,一個新的內存分配,一個新的處理程序在每次調用在一個循環時間;
你的實際問題是什麼?你只是擔心資源使用,或者你無法做到你想要的? – snowdude
我首先看到一些帶有CreateCompatibleBitmap的代碼,然後再次使用SelectObject。如果它是相同的,那麼我不想再做同樣的事情。 –