问题: 文档类中处理图像,获得图像相关数据,对话框里需要显示,如何处理?
参考:https://baike.1688.com/doc/view-d1753096.html
CMyDlg类是不可以调用CMyDoc类的成员的,而CMyView类又可以调用CMyDlg类和CMyDlg类的成员。所以你可以在CMyView类中通过语句CMyDoc* pDoc = GetDocument();获得CMyDoc类的指针用来调用CMyDoc中成员变量number,把CMyDlg类中要实现的代码写到CMyView类中,实现如下:
CMyDoc* pDoc = GetDocument();
CMyDlg dlg;
if(dlg.DoModal()==IDOK)
{
//你要实现的代码
// pDoc->number
}
参考2:MFC中获取各个窗口(对话框)之间的指针、对象、句柄
https://blog.csdn.net/lihui126/article/details/43340695
https://blog.csdn.net/qianpeng4/article/details/77061953
1.获得应用程序指针
这个很简单,一句话搞定:
CMyApp* pApp=(CMyApp*)AfxGetApp();
2.获得主框架指针
在类CWinThread里面有一个公有的成员变量:CWnd* m_pMainWnd; 它存在的主要目的就是提供我们获得CWnd指针,我们可以利用它来达到我们的目的:
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
- 在框架类中调用文档类、视图类
这里我们可以利用GetActiveXXXXX()去掉用当前激活的文档和视图:
CMyDoc* pDoc=(CMyDoc*)GetActiveDocument();
CMyView* pView=(CMyView*)GetActiveView();