文档视图结构中,缺省的命令处理
文档视图结构中,缺省的命令处理
在文档视图结构所构建的框架中,很多命令ID都有缺省的命令处理。很多功能都由他们完成,但这些功能在程序中不“可见”,不便于对程序的理解。
以下归纳了常见的缺省处理及其流程
在需要时候,可以重载这些函数以实现特定功能
CWinApp::OnFileNew
调用m_pDocManager->OnFileNew()
void CDocManager::OnFileNew() { if (m_templateList.IsEmpty()) { TRACE0("Error: no document templates registered with CWinApp./n"); AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC); return; } CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetHead(); //如果含有多个文档模板,显示一个新建文档类型对话框 if (m_templateList.GetCount() > 1) { // more than one document template to choose from // bring up dialog prompting user CNewTypeDlg dlg(&m_templateList); int nID = dlg.DoModal(); if (nID == IDOK) pTemplate = dlg.m_pSelectedTemplate; else return; // none - cancel operation } ASSERT(pTemplate != NULL); ASSERT_KINDOF(CDocTemplate, pTemplate); //建立空文件 pTemplate->OpenDocumentFile(NULL); // if returns NULL, the user has already been alerted }
CWinApp::OnFileOpen
调用m_pDocManager->OnFileOpen()
void CDocManager::OnFileOpen() { //出现打开文件对话框文件取得文件名 CString n