在封装了文档视图结构的控件的ONCREATE的时候,文档视图结构也进行创建,调试发现断点发生在MFC的CSingleDocTemplate::OpenDocumentFile函数中的最后部分
CWinThread* pThread = AfxGetThread();
ASSERT(pThread);
if (bCreated && pThread->m_pMainWnd == NULL)
{
// set as main frame (InitialUpdateFrame will show the window)
pThread->m_pMainWnd = pFrame;
}
InitialUpdateFrame(pFrame, pDocument, bMakeVisible); return pDocument;
即发生在ASSERT(pThread);pThread为空!
注意打开一个包含该控件的网页没有问题,同时打开2个才有上述错误。而且在IE6上打开多个网页却也没有问题,IE7中才有错误。
另外封装文档视图结构的方法来自MSDN上的一篇较早的文章,有示例程序,有己编译好的示例控件(简单的画线),将其控件包含在网页中,在IE7上打开多个却是没有问题的!
AfxGetThread在MSDN中描述好像在VC6以前和VC。NET中表现是有区别的。