2010-11-05 126 views
0

有誰知道關於GDI資源處理的好文檔/文章嗎?如何處理GDI資源

我需要的是可以有不同的生命週期類之間共享像圖標和位圖的一些資源,我想知道我應該怎麼解決這個問題。

互斥和其他內核對象是有DuplicateHandle函數,但是GDI是混淆了我一點點。另外,CBitmap通過常量運算符HBITMAP返回HBITMAP的方式,就像這樣,有點嚇人。

我想避免在每次重繪時創建本地位圖,所以某些資源緩存會很好,但是我也不確定我可以開始創建和加載C#####資源,而主消息泵並不存在, t開始運行。

看來我使用錯誤的關鍵詞,因爲我無法找到任何好的,但可管理簡短的文檔。

回答

1

有沒有這樣的文件,它是所有非常簡單。完全取決於您決定何時調用DeleteObject()。並決定如何平衡程序的資源使用情況,並在需要時動態創建和銷燬對象。只有較大的位圖才值得保留。鋼筆和畫筆非常便宜,您可以即時創建並摧毀它們。字體是一個角落的情況,通常只是爲了節目的直播而緩存,因爲你需要這麼少的字體。

有大量的在C++中的方式來管理高速緩存,一個shared_ptr <>提供了用於例如標準參考計數模式。但是,將引用保留爲您的窗口包裝類的成員是非常典型的。在多個窗口中使用相同的位圖並不常見。因人而異。

創建GDI對象不需要消息循環。