我在线程中用
pDlg->m_pDlgScreenMap = new CScreenMap();
pDlg->m_pDlgScreenMap->Create(IDD_DIALOG_SCREENMAP,NULL);
pDlg->m_pDlgScreenMap->ShowWindow(SW_SHOW);
pDlg->m_pDlgScreenMap->UpdateWindow();
创建对话框,结果出现异常
异常的地方在:
CHandleMap* pMap = afxMapHWND();
ASSERT(pMap != NULL);
CObject* p;
ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
(p = pMap->LookupTemporary(m_hWnd)) != NULL);
ASSERT((CWnd*)p == this); // must be us
没看明白。
出现异常一般都是代码的问题。
如果你在创建CScreenMap的时候出异常,就在
CScreenMap的初始化部分单步跟进去看看就行了。
如果在后面,就看后面代码做了什么操作。
在pDlg->m_pDlgScreenMap->Create(IDD_DIALOG_SCREENMAP,NULL); 之后有异常
异常在ASSERT(pMap != NULL);
这,我跟进去看了,没看懂
你要在CScreenMap类的创建的代码中跟。
象wm_create,或者WM_INITDIALOG中。
在工作者线程里创建窗口,应该会出问题的。在主线程里做吧。