view中添加如下代码:
void CMyView::OnHist()
{
// TODO: Add your command handler code here
CHist hi(this);//构造函数中将当前类指针赋值给对话框
hi.DoModal();
}
hist.h中添加cmydoc.h和cmyview.h头文件,注意顺序
public:
long hist[256];
CHist(CWnd* pParent = NULL); // standard constructor
CMyView *pView;//定义指针
hist.cpp中构造函数:
CHist::CHist(CWnd* pParent /*=NULL*/) :
CDialog(CHist::IDD, pParent)
{
//{{AFX_DATA_INIT(CHist)
pView = (CMyView*)pParent;//获取当前父指针转换为view指针;
//}}AFX_DATA_INIT
}
注意:这里用 CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;或CMainFrame *pMain = (CMainFrame*)AfxGetMainWnd();
CMyView *pView = (CMyView*)pMain->GetActiveView();
CMyDoc *pDoc = (CMyDoc*)pView->GetActiveWindow();
这样不能正确获取指针;