非SDI/MDI,
void CWinApp::EnableModeless(BOOL bEnable)
{
#ifdef _AFX_NO_OLE_SUPPORT
UNUSED(bEnable);
#endif // no-op if main window is NULL or not a CFrameWnd
CWnd* pMainWnd = AfxGetMainWnd();
if (pMainWnd == NULL || !pMainWnd-> IsFrameWnd())//异常发生在这 .....................
return; #ifndef _AFX_NO_OLE_SUPPORT
// check if notify hook installed
ASSERT_KINDOF(CFrameWnd, pMainWnd);
CFrameWnd* pFrameWnd = (CFrameWnd*)pMainWnd;
if (pFrameWnd-> m_pNotifyHook != NULL)
pFrameWnd-> m_pNotifyHook-> OnEnableModeless(bEnable);
#endif
}
void CWinApp::EnableModeless(BOOL bEnable)
{
#ifdef _AFX_NO_OLE_SUPPORT
UNUSED(bEnable);
#endif // no-op if main window is NULL or not a CFrameWnd
CWnd* pMainWnd = AfxGetMainWnd();
if (pMainWnd == NULL || !pMainWnd-> IsFrameWnd())//异常发生在这 .....................
return; #ifndef _AFX_NO_OLE_SUPPORT
// check if notify hook installed
ASSERT_KINDOF(CFrameWnd, pMainWnd);
CFrameWnd* pFrameWnd = (CFrameWnd*)pMainWnd;
if (pFrameWnd-> m_pNotifyHook != NULL)
pFrameWnd-> m_pNotifyHook-> OnEnableModeless(bEnable);
#endif
}
2)如果你自己添加了CDocument类,那么你只需要模仿单文档中GetDocument()函数的实现,提供给外界接口。
当然你要用自己定义的CDocument类,包含头文件是必须,不要忘了。
在CMyDoc类响应消息
CMyDlg dlg;
dlg.DoModal();
然后程序就在这句话发生错误了
if (pMainWnd == NULL || !pMainWnd-> IsFrameWnd())//异常发生在这
在CMyDlg的OnPaint()函数中有写
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
CMyDoc* pDoc = (CMyDoc*)pMainFrame->GetActiveDocument();