工控编程吧

标题: 上位机MFC如何在文档模板中遍历文档 [打印本页]

作者: qq263946146    时间: 2019-7-26 12:35
标题: 上位机MFC如何在文档模板中遍历文档
多文档程序可以同时打开众多视窗,每个对应一个文档处理类。
我们可以访问这些文档类
例如通过调用下面代码实现

  1. void CMy123App::OnAll()
  2. {
  3.         // TODO: Add your command handler code here
  4.         POSITION pos = GetFirstDocTemplatePosition();
  5. CMultiDocTemplate* pDocTemp = (CMultiDocTemplate*)GetNextDocTemplate(pos);

  6.         int n = 0;

  7.         //获得第一个文档的位置
  8.         POSITION pos1 = pDocTemp->GetFirstDocPosition();
  9.         while(pos1 != NULL)
  10.         {
  11.                 n++;

  12.                 //获得下一个文档
  13.                 CDocument* pDoc = pDocTemp->GetNextDoc(pos1);
  14.                 //更新视图
  15.                 pDoc->UpdateAllViews(NULL, n);
  16.         }
  17. }
复制代码
为了显示效果,我们可以在视窗类中添加虚函数以示标识

  1. void CMy123View::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
  2. {
  3.         CRect rect;
  4.         GetClientRect(rect);
  5.         CString strText = _T("");
  6.         strText.Format(_T("文档%d"), lHint);
  7.         CDC* pDC = GetDC();
  8.         pDC->SetTextAlign(TA_CENTER);
  9.         pDC->TextOut(rect.Width() / 2, rect.Height() / 2, strText);
  10. }
复制代码
(, 下载次数: 0)