关于MainFrame和Doc的一个特别奇怪的问题

lzz4513 2011-08-06 11:24:05
我在程序中自己建立了一个DialogBar工具栏,并且把它的按钮执行函数都放在了MainFrame中,这样在界面上就设置了我自己的工具栏。这些都没有问题。可现在的问题是,当我打开一个文件,要对文件进行处理时,内容却丢失了。这样说可以不太清楚,就是在App函数中打开一个文件。Doc中是对文件的处理。要是通过菜单直接调用Doc中的OnRun函数,程序执行起来就一点问题没有。但要是在MainFrame中的OnAuto函数中通过指针调用pMyDoc->OnRun,这样就执行错误,数据都丢失了,我的pMyDoc是这样设定的。在MainFrame.h中定义了CTestDoc pMyDoc;然后在MainFrame.cpp的Doc构造函数中定义了pMyDoc=new CTestDoc。实在是不明白怎么回事,还请高手指点一下。谢谢了。太奇怪了。这个问题我觉得是有关Doc和MainFrame的关系问题。感觉好像是打开Doc文档后,在回MainFrame中调用函数时,导致数据丢失。
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chunyou128 2011-08-06
  • 打赏
  • 举报
回复
GetActiveDocument( );
shiyunqiang 2011-08-06
  • 打赏
  • 举报
回复
上面那个好像是在View中使用的,使用下面的这个

C***Doc *pDoc=(C***Doc *)CFrameWnd::GetActiveDocument();
shiyunqiang 2011-08-06
  • 打赏
  • 举报
回复
pMyDoc=new CTestDoc???
你又自己创建了一个空的Doc当然会出问题,你要直接调用现有的Doc
可以使用CTestDoc* pDoc = GetDocument();
lzz4513 2011-08-06
  • 打赏
  • 举报
回复
怎么都没人理我啊,给小女子指点一下吧。
lzz4513 2011-08-06
  • 打赏
  • 举报
回复
呵呵,问题解决了,谢谢大家,3楼的正解。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧