CVgExaView不是继承于CView,(继承Vega中的view 类:zsVegaView),在一个对话框中定义成员变量:CVgExaView* m_pView,对话框中的一个按钮点击,用 m_pView调用 CVgExaView类中的成员函数,为什么一单击按钮程序就出问题,结束了?
CVgExaView不是继承于CView,(继承Vega中的view 类:zsVegaView),在一个对话框中定义成员变量:CVgExaView* m_pView,对话框中的一个按钮点击,用 m_pView调用 CVgExaView类中的成员函数,为什么一单击按钮程序就出问题,结束了?
m_pView = new CVgExaView; ?
没用过这个,关注一下
我是新手,没怎么看明白,能详细说说吗?
void CVgMFCView::OnGfxEnv()
{
// TODO: Add your command handler code here
CEvnDlg* pEvnDlg=new CEvnDlg(); //CEvnDlg是对话框类
pEvnDlg->Create(IDD_EVN_DLG,this);
pEvnDlg->ShowWindow(SW_SHOW);
}对话框类的构造函数:在对话框类中定义成员变量:CVgMFCView* m_pVgView
CEvnDlg::CEvnDlg(CVgMFCView* pParent /*=NULL*/)
: CDialog(CEvnDlg::IDD, pParent),m_pVgView(pParent)
{
//{{AFX_DATA_INIT(CEvnDlg)
// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT
}然后在对话框类中响应按钮消息:
void CEvnDlg::OnCheckFog()
{
// TODO: Add your control notification handler code here
m_pVgView->toggleGfx(VGGFX_FOG);}//toggleGfx(VGGFX_FOG);是CVgMFCView的成员函数这个时候程序就出错了。
: CDialog(CEvnDlg::IDD, pParent),m_pVgView(pParent)很显然,pVgView没有初始化,应该是这样CEvnDlg* pEvnDlg=new CEvnDlg(this);
memset( pEvnDlg, 0, sizeof( CEvnDlg ) );---
....