1、Dialog中insert控件picture,程序中用循環(huán)來顯示圖片時,需要重寫dialog的OnCancel()方法。 方法中添加上DestoryWindow()函數(shù)的調(diào)用,同時注釋CDialog::OnCancel();。 -->非模態(tài)dialog 原因: 循環(huán)顯示圖片,公用同一個dialog,在顯示的第一個圖片退出時,dialog創(chuàng)建的對象m_hWnd處于隱藏狀態(tài),并未銷毀, 所以再顯示第二張圖片時,就會報錯(wincore.cpp line:639行 源碼:ASSERT(pWnd->m_hWnd == NULL); // only do once)
知識點:
模態(tài)Dialog,當(dāng)DoModa()l函數(shù)執(zhí)行中才會有窗口句柄m_hWnd的存在,DoModel函數(shù)執(zhí)行完,系統(tǒng)就會釋放窗口句柄m_hWnd, (類對象不一定此刻釋放,但畢竟還是系統(tǒng)來完成);非模態(tài)Dialog,當(dāng)Create后窗口句柄m_hWnd就存在,在需要的時候show出窗口。 它的句柄銷毀依靠程序員調(diào)用函數(shù)DestroyWindow()來完成,類對象銷毀必須手動delete。
2、winoc.cpp 345行報錯,檢查程序,控件處理正常。 那就是編譯方式不對,由debug更換為releash就可以了。
3、如果項目中自動添加CanExit()函數(shù),需要在創(chuàng)建項目的時候,勾選上“Automation”項。
|