1、  用VC++2012 MFC向导创建多文档应用程序“MRMS”
    2、 添加了一个新的文档、视图、框架(ImportGradeCtrl),并能通过功能条上的  “导入数据” (MRMS.cpp)菜单创建新的文档:
void CMRMSApp::OnImpGc()
{
// TODO: 在此添加命令处理程序代码
POSITION curTemplatePos = GetFirstDocTemplatePosition();
int iii=0;
while(curTemplatePos != NULL)
{
CDocTemplate* curTemplate =
GetNextDocTemplate(curTemplatePos);
CString str;
curTemplate->GetDocString(str, CDocTemplate::docName); if(str == _T("ImportGradeControl"))
{
curTemplate->OpenDocumentFile(NULL);
return;
}
}
}    3、下面想通过 鼠标单击  “文件视图”窗口的树状节点 “品位控制数据”  创建新的文档视图“ImportGradeCtrl”, 如何实现?
    下面的代码是树形视图上响应鼠标单击的函数
void CViewTree::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
{
// 获取当前选择的项
 CTreeCtrl* pTreeCtrl = this;
 CPoint ptCurSel(0,0);
 TVHITTESTINFO HitTestInfo; // 通过鼠标在客户区中的位置
 GetCursorPos(&ptCurSel);
 pTreeCtrl->ScreenToClient(&ptCurSel);   // 获取当前选择的是哪一项
 HitTestInfo.pt = ptCurSel;  
 HTREEITEM hSelect = pTreeCtrl->HitTest(&HitTestInfo);
 CString strItem;
 if(hSelect != NULL)
 {
  strItem = pTreeCtrl->GetItemText(hSelect);
  ::AfxMessageBox( strItem);
 }
 // 设置该项为选中状态
 pTreeCtrl->SelectItem(hSelect); if(strItem == _T("品位控制数据库"))
 {//如果点击的节点内是“品位数据库” 则在这里创建一个新的视图
//该视图已经创建好,可以在菜单上单击创建???
???
 }}
请高手指点,谢谢!

解决方案 »

  1.   

    CWinAppEx::OnFileNew();
      

  2.   

    CreateView等方式创建新试图
      

  3.   

    我是想通过 单击 树形视图的节点,根据节点不同的标签,创建不同的新的视图,也就是想在 CViewTree::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)这个函数中创建新的视图(我已经在该函数中实现了判别节点的标签内容)
      

  4.   

    以前用过,用的回掉函数的方法,在CViewTree的OnNMClick中调用了一个在CFileView中实现的回掉函数。