CtrlDoc* pDoc   =   (CtrlDoc*)(((CFrameWnd*)AfxGetMainWnd())->GetActiveDocument());//获取文档指针
这句话该放在对话框类的那个位置?
1)构造函数?试过,不行。如果放在构造函数中,在其它任何地方调用pDoc时,程序执行就死机。
2)放在OnInitDialog(),情况与上面一样!
3)无奈最后把它放在OnPaint()中,这回是可以了!在其它地方调用pDoc正常了!
   但是后来又发现问题了,当我要在OnInitDialog()调用pDoc来初始发数据是又完了!大家说,我获取文档指针语句该放在对话框类那里最好啊?如果大家也没办法要采用3)所摆放的位置,那初始化语句又要从OnInitDialog()中移到哪里呢?

解决方案 »

  1.   

    不要试图把pDoc指针传递得满天飞吗可以猜想你的对话框类是模态/非模态的子对话框吧。。那么在调用这个对话框类前(例如在视图类的响应函数中)可以把pDoc下相关变量的地址传给对话框类。或者干脆在对话框结束后,根据对话框的成员变量的值来决定 pDoc 所需要做的工作。对话框最大的功用就是显示或者修改变量。而不是万能的搞定一切