我在程式中創建非模態對話框時,出錯;創建模態對話框時,正常,這說明對話框本身是沒有問題的,問題在于創建方式上。下面的一段代碼為創建對話框時的代碼
// CVibrationVisual為所需創建的對話框類
m_pVibrationVisual=new CVibrationVisual;
if(m_pVibrationVisual != NULL){
// IDD_VIBRATONVISUAL為子對話框的ID
m_pVibrationVisual->Create(IDD_VIBRATONVISUAL,this);
m_pVibrationVisual->ShowWindow(SW_SHOW);
// m_pVibrationVisual->DoModal();
HideUI(); //Dialog子類中的函式,類似于ShowWindow(SW_HIDE),隱藏父視窗
在創建非模態對話框時,系統提示錯誤如圖所示

除錯后錯誤也出現在執行
m_pVibrationVisual->Create(IDD_VIBRATONVISUAL,this)處
查MSDN后發現Create()函式的引數也不復雜,我將this改成NULL也不行,所以我想請問大家,這種錯誤可能的原因是什么?
uj5u.com熱心網友回復:
IDD_VIBRATONVISUAL 模板 有問題資源中 Ctrl + T 試試 ?
uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
查找了下資料后,初步確認應該是創建MFC DLL方面的問題,還在進一步研究中uj5u.com熱心網友回復:
dll 要使用 自己的 模板:AFX_MANAGE_STATE(AfxGetStaticModuleState());
uj5u.com熱心網友回復:
問題解決了,在創建視窗時加上 LOAD_LOC_RES(GetLocRes()) 就好了,謝謝各位的解答!uj5u.com熱心網友回復:
LOAD_LOC_RES(GetLocRes()) ?? MFCuj5u.com熱心網友回復:
在主類頭檔案中添加CConnectDlg *pTD 定義全域變數
然后.cpp中執行
pTD = new CConnectDlg();
pTD->Create(IDD_Connect); //創建一個非模態對話框
pTD->ShowWindow(SW_SHOWNORMAL); //顯示非模態對話框
我是這么創建非模態對話框的
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/69980.html
標籤:界面
