在函数BOOL CreateView( int row, int col, CRuntimeClass* pViewClass, SIZE sizeInit, CCreateContext* pContext ); 中,有一个参数CCreateContext* pContext,里面有当前的document的指针 而在CView的OnCreate中: // if ok, wire in the current document ASSERT(m_pDocument == NULL); CCreateContext* pContext = (CCreateContext*)lpcs->lpCreateParams;
// A view should be created in a given context! if (pContext != NULL && pContext->m_pCurrentDoc != NULL) { pContext->m_pCurrentDoc->AddView(this); ASSERT(m_pDocument != NULL); } 就是在这里调用AddView的。 ok,that's it.