2011-09-05 21 views
1

在閱讀an article about how to render to a device context with AGG library後我很擔心。如何訪問窗口的內部位圖?

文章內容:

甲設備上下文是不是一個真正的渲染目標,它是關於渲染目標只是一個數據 結構保持信息。當您使用GDI函數渲染到DC時,該函數只會使用DC到 獲取有關如何以及在何處設置其像素的信息。呈現目標的實際 是一個內存位圖,它被選中到設備 上下文中。

AGG庫使用位圖緩衝區作爲渲染目標。我需要將圖形渲染到窗口。最明顯的方法是創建一個內存位圖並將其位於窗口DC中。

但是有沒有更好的方法?是否有可能訪問窗口的內部位圖來渲染它?

+0

如果您從繪畫循環中渲染,則使用「BeginPaint」函數爲您提供一個DC窗口。如果您從繪畫週期之外進行渲染(不推薦),「GetDC」會爲您提供窗口的DC。請注意,這樣做會繞過AGG所做的任何事情,因此您需要與AGG覈實您正在做的事情對他們來說是否合適。 –

+0

您是否使用AGG庫尚不清楚。你呢,還是這是關於如何在DC上高效繪製的一般問題? – NGLN

回答

2

如果您沒有自己選擇到DC中的位圖,那麼您可以通過GetCurrentObject(DC, OBJ_BITMAP)獲得該DC中當前選定的位圖。如果結果爲NULL,那麼您必須首先創建並選擇一個位圖。

在AGG附加例程中使用該位圖句柄。