[問題] 使用 GDI 時的 DC 和 Object 問題 (已自行解決)

作者: xxtomnyxx (翼天)   2014-01-02 14:49:05
呃......小弟我程式語言是自學的,
如果這個問題不適合發在這裡就請坂主砍了吧。
使用 GDI 進行繪圖及視窗輸出時,
要先創建出一個 Object,
然後創建一個 DC 後用 SelectObject 把 Object 選入 DC 中,
但是我發現把 Object Select 到 DC 之後,
就算把 Object 用 DeleteObject 刪除掉,
DC 還是能正常的使用。
就是說如果我用 CreateDIBSection 創建出一個 Object,
然後在這個 Section 中填入顏色,
再用 CreateCompatibleDC 創建出一個 DC 後,
用 SelectObject 把上述 Object 選取到 DC 上,
然後就把該 Object 用 DeleteObject 刪除掉,
但是被選取的 DC 卻還是能用 BitBlt 或其它繪圖 API
把我填入的顏色畫到其它 DC 上。
基於效能需求,
我必須把大量圖片在一開始就讀入記憶體,
我記得 Object 和 DC 的數量是有限制的,
所以我應該把讀入記憶體的圖檔用 Object 儲存呢?
還是把這個 Object 選取到 DC 後就把 Object 刪除,
用 DC 來儲存呢?
如果用 Object 來儲存,
每次我要使用圖檔時就要把這個 Object 選取到 DC 上,
我是要每次需要時就創建一個 DC 然後用完就把 DC 刪除掉,
還是要創建一個 DC 後固定用這個 DC 當媒介?
如果要固定一個 DC 當媒介,
那我要怎麼確定這個 DC 中包含有的 Object 是哪個以避免重複選取呢?
感謝各位的指教!

Links booklink

Contact Us: admin [ a t ] ucptt.com