首先:我對GDI有點新鮮感,所以如果我有任何誤解,請原諒(並請告訴我)。如何繪製位圖
我想要做的事: 我試圖讓我的WM_PAINT代碼漆爲位圖,而不是與調用BeginPaint屏幕()。我也想在屏幕上顯示位圖,同時在其上顯示其他數據(不保存到位圖)。
任何人都可以告訴我需要實現這個功能和數據類型的win32嗎? 謝謝
首先:我對GDI有點新鮮感,所以如果我有任何誤解,請原諒(並請告訴我)。如何繪製位圖
我想要做的事: 我試圖讓我的WM_PAINT代碼漆爲位圖,而不是與調用BeginPaint屏幕()。我也想在屏幕上顯示位圖,同時在其上顯示其他數據(不保存到位圖)。
任何人都可以告訴我需要實現這個功能和數據類型的win32嗎? 謝謝
首先,要畫一個窗口以外的地方,你需要一個新的DC。您可以使用HDC memDC = CreateCompatibleDC([your window hdc]);
創建一個。
現在你需要一個位圖來繪製。使用HBITMAP memBitmap = CreateCompatibleBitmap ([your window hdc],[your window width],[your window height]);
(假設你想要一個相同的大小,如果它不是那麼StretchBlt
應該做的伎倆)來創建。
請注意,當您完成這些操作後,您需要清理DeleteObject (memBitmap);
和DeleteDC (memDC);
。
一旦創建,選擇位圖到你的屏幕外DC通過SelectObject (memDC, memBitmap);
現在做你的繪圖到memDC
。完成後,使用函數將源代碼hdc用作memDC,將目標hdc用作窗口的DC。不要忘記刪除您創建的內容。
由於我們必須使用CreateCompatibleBitmap()創建與設備上下文兼容的位圖...在該程序中,我還希望允許用戶從文件加載位圖。我將如何使該位圖兼容呢? – xcrypt
http://msdn.microsoft.com/en-us/library/ms908165.aspx –