程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> GDI對象選入多個設備環境導致顯示出錯的問題

GDI對象選入多個設備環境導致顯示出錯的問題

編輯:C++入門知識

最近才開始寫圖形化的程序。

不禁感慨道雖然也有很多不足,Windows作為一個操作系統是多麼的強大!當然,這也導致寫程序很麻煩,尤其是關系到unicode編碼的時候。

今天遇到的問題是關於GDI對象的,代碼如下:

      
     hDc = BeginPaint(hDlg, & 
      memDc =     
     StretchBlt(hDc, , , , , memDc, ,       
 
     EndPaint(hDlg, & }

可以看到最初我並沒有將內存設備環境刪除,也沒有將位圖與內存設備環境的聯系斷開。

源程序運行時界面保持靜止,沒有按照我的想法會顯示動態的視頻。

經過對比,首先想到的是內存設備環境沒有刪除,這導致GDI對象的洩漏,因為每次會新建一個。

將內存設備環境刪除後程序運行正確,但考慮每次我都將位圖選入內存設備環境後再繪圖,理論上應該可以顯示動態視頻,於是想到問題的根本不在此。

經測試後發現,將位圖與內存設備環境斷開後(即重新選入舊的位圖),即使內存設備環境洩漏也可以正確顯示。因此主要的問題出在:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved