或者在我的具體情況下,一個窗口區域(HRGN)?是否可以複製GDI句柄?
更新: 的問題是:
我對象的集合,這些對象可以容納一個HRGN。這些曾經獲得的區域在物體被毀壞時被釋放。由於其中一些對象存儲在std :: vector中,我必須定義一個分配運算符。
到現在爲止,我剛剛分配了那些HRGN,但那是一個錯誤。如果我複製這些對象,那麼每個對象都會嘗試刪除同一個區域,其中一個會使用不存在的區域。
或者在我的具體情況下,一個窗口區域(HRGN)?是否可以複製GDI句柄?
更新: 的問題是:
我對象的集合,這些對象可以容納一個HRGN。這些曾經獲得的區域在物體被毀壞時被釋放。由於其中一些對象存儲在std :: vector中,我必須定義一個分配運算符。
到現在爲止,我剛剛分配了那些HRGN,但那是一個錯誤。如果我複製這些對象,那麼每個對象都會嘗試刪除同一個區域,其中一個會使用不存在的區域。
將每個HRGN包裹在引用計數對象中,該引用計數對象在任何智能指針例如shared_ptr
。
不,這是不可能的。 GDI對象僅支持每個對象的單個句柄。
我希望我錯過了一些API調用,似乎更正解決方案是保持一個引用計數我自己。謝謝。 – Ismael 2010-05-07 14:31:39
您不能複製HRGN句柄,但可以使用CombineRgn
函數獲得副本。
你爲什麼要複製句柄?您的問題可能有解決方案,但您需要提供更多上下文(以及可能的代碼片段)。 – 2010-05-06 21:11:28
謝謝,我已經添加了一些上下文。 – Ismael 2010-05-07 14:29:57