一个关于涉及MFC 内部的程序问题

我想用MFC编写一个记事本程序,我新建一个(.EXE)的工程,单文档,在第四步的“高级”->"文件扩展名"中我输入"txt",在最后一步,把View类的基类改成CEdit... 我想用MFC编写一个记事本程序,我新建一个(.EXE)的工程,单文档,在第四步的“高级”->"文件扩展名"中我输入"txt",在最后一步,把View类的基类改成CEditView.最后运行,不用写一行代码,一个记事本生成了,可以进行保存,打开等等......
当对文字进行修改后,不保存,点击"关闭"按钮,会弹出一个消息框,提示是否保存,问题出来了: 这个"消息框"MessageBox()是从哪里调用出来的? 由于涉及MFC 的内部机制, 所以想请VC高手帮小弟指点迷津,感激不尽!!!!!
其实我是想将这个功能屏蔽掉,不让它弹出,由我来判断文件是否有改动,进而完成我的操作,恳请高手们直接告诉我如何做,从哪个函数下手,或是其它方法。
展开
 我来答
皇家救星1985
2007-10-17 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1661万
展开全部
好像LZ是要问是什么函数调用了MessageBox(...)吧?
-------------------------------------------
BOOL CNopanleDoc::CanCloseFrame(CFrameWnd* pFrame)
{
// TODO: Add your specialized code here and/or call the base class
if(this->IsModified())//判断文件是否被修改过
{
AfxMessageBox("将这一语句替换成你所要的操作");
this->SetModifiedFlag(false);//不弹出询问
}
return CDocument::CanCloseFrame(pFrame);
}
-------------------------------------------
在工工程名Doc.cpp处右击鼠标,选择建立类向导,添加CanCloseFrame,将里面的内容替换成上面的内容就行了
stone_dongdong
2007-10-15 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1016万
展开全部
MessageBox()虽然是CWnd类的成员函数,但它的实现是调用的系统API,也就是封装在user32.dll动态库的导出函数,有W/A(UNICODE和MB2个版本)。
你可以点输入MessageBox,点击它,点F12,就看到其函数实现或者函数声明了。

MessageBox的实现跟MFC体系基本没有关系,试想想,一个简单的弹出式对话框还要用CWnd这么大一个类来封装一下,那不是吃饱了撑的了么
其参数均使用的系统类,
HWND,父窗口
IN LPCSTR lpText, 对话框文本
IN LPCSTR lpCaption,对话框标题
IN UINT uType; 对话框类型,显示的图标或按钮个数控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ec167ac34
2007-10-15 · TA获得超过1788个赞
知道小有建树答主
回答量:1312
采纳率:0%
帮助的人:1157万
展开全部
CDocument创建的类提供一个标志,以跟踪某文档在最后一次存盘后是否被修改过.当打开文档或将文档存盘时,标志会自动消除.只要文档被改动,文档类就会使用SetModifiedFlag()将此标志置位啦.SetModifiedFlag()函数以TRUE或FALSE为参数,缺省参数为TRUE,TRUE即是通知框架,此文档在最后一次存盘后又被修改过了.可以通过调用CDocument中的ISModified()成员函数来查询此标志.你说的这个询问MessageBox()就是框架根据此标志来发出的命令.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mairycal
2007-10-15 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:0
展开全部
MessageBox()是CWnd类的成员函数
它的继承机制如下:
CObject-->CCmdTarget---->CWnd;
从上面的脉络我们可以看出CWnd是CCmdTarget的子类;而所有关于消息处理的类都是直接或间接从CCmdTarget继承来的!只要是从CCmdTarget或其子类继承的类都将有消息处理功能;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式