DeleteDC 與 ReleaseDC的區別

2021-05-26 10:18:57 字數 443 閱讀 3971

deletedc 與 createdc 對應

releasedc 與 getdc 對應

借過來的(getdc),就要放還回去(releasedc)

自已建立的(createdc),要自已刪除(deletedc)

總之,要「用過之後, 不留痕跡」

還有以下的特殊情況,如cclientdc   dc(this)或cpaintdc dc(this);

對於這樣的dc到最後是否需要releasedc()?

答案是:不需要。

因為,在mfc中,wm_paint之類的訊息在銷毀時會自動呼叫

cpaintdc的析構函式,對對像dc進行銷毀,如下:

cpaintdc::~cpaintdc()

而cclientdc的對像dc則會在cclientdc的析構函式中被釋放

cclientdc::~cclientdc()

DeleteDC 與 ReleaseDC的區別

deletedc 與 createdc 對應 releasedc 與 getdc 對應 借過來的 getdc 就要放還回去 releasedc 自已建立的 createdc 要自已刪除 deletedc 總之,要 用過之後,不留痕跡 還有以下的特殊情況,如cclientdc dc this 或cpa...

Android studio打release包錯誤

1 報錯 error error expected a color resource id r.color.but received an rgb integer resourcetype 解決辦法 在modle的build.gradle裡面新增如下 lintoptions2 報錯 error er...

AQS中的acquire方法release方法

aqs中的acquire方法解釋,首先呼叫 tryacquire方法判斷當前執行緒是否拿到鎖,沒有拿到的話執行addwaiter方法把失敗的這個執行緒打包成乙個節點,通過迴圈cas機制強行加入到佇列的尾部,該方法的返回值會返回這個節點,再打包交給acquirequeued方法,acquirequeu...