[問題] MFC SDI dll問題請益
各位板友大家好,小弟是MFC新手,
目前想做一個MFC dll的SDI子視窗,
父視窗也是SDI視窗,由父視窗AP呼叫此dll。
父視窗及子視窗都是用一般的做法如下..
--
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CLogAccessDoc),
RUNTIME_CLASS(CMainFrm), // main SDI frame window
RUNTIME_CLASS(CLogAccessView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
//// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
::AfxMessageBox(_T("ProcessShellCommand Error"));
return FALSE;
--
不過在調用過程發現dll的程式碼在「ParseCommandLine(cmdInfo);」會產生錯誤,
追蹤程式碼發現是斷在wincore.cpp的655行ASSERT(pWnd->m_hWnd == NULL); // only
do once
也因為這樣,導致衍生自CView類別的自定類別的函式OnCreate無法進入,也就無法顯示
我希望出現的那些TabCtrl..等控制項。
若是將「CCommandLineInfo cmdInfo;」(含)以下的代碼註解,父子視窗是可順利開啟,
但是因此就不會跑衍生自CView類別的自定類別函式OnCreate了..
查了兩本書發現SDI的用法皆是如此,不需要去new新的Doc或是View,
由CSingleDocTemplate類別去處理後續的訊息,
想請教板上神人是否我的用法有誤呢?
或是有其他方式能解決此問題呢?
謝謝大家。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.138.212
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1445266029.A.552.html
※ 編輯: BIAO (61.230.138.212), 10/19/2015 22:54:47
→
10/20 03:40, , 1F
10/20 03:40, 1F
→
10/20 03:42, , 2F
10/20 03:42, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-3
13