各位大神好,今天測驗了一個小程式,小程式建立流程是1.建立一個基于對話框的mfc。2.添加一個靜態文本框3.在Onctlcolor里改變一下背景色4.在Ontimer里讓文本框里的數字從0到1000回圈。運行大概20分鐘后,靜態文本框自動變白,拖動界面后整個電腦螢屏變花。不知道怎么回事,大神們幫幫忙,謝謝。程式和問題現象在圖片里。



uj5u.com熱心網友回復:
任務管理器查看GDI句柄數, 應該是 不斷的 CreateSolidBrush GDI泄漏導致資源耗盡static CBrush mBrush;
if(mBrush.m_hObject == NULL)
{
mBrush.CreateSolidBrush(RGB(255, 0, 0));
}
return (HBRUSH)mBrush;
uj5u.com熱心網友回復:
搜“GDI泄露檢測”uj5u.com熱心網友回復:
CreateSolidBrush不停的創建,不需要反復創建,重用一個uj5u.com熱心網友回復:

hbr創建一個就夠了。 if判空則創建,
uj5u.com熱心網友回復:
在對話框 初始化時 ,就創建好, 以后就用它。試試
GetStockObject
It is not necessary (but it is not harmful) to delete stock objects by calling DeleteObject.
uj5u.com熱心網友回復:
GDI超過了9999,轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/79682.html
標籤:界面
上一篇:尋個4年前用mfc寫棋牌的一個牛
