问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

mfc单文档应用程序 打开文件操作默认的消息响应函数在哪个地方_百度知 ...

发布网友 发布时间:2023-11-29 16:54

我来回答

2个回答

热心网友 时间:2024-07-26 20:48

在MFC框架代码中,不在你自己的程序里面。

MFC对很多默认操作做了层层封装,单就打开文件来说,如果你自己不实现响应函数,那么文档模板类会产生一个默认操作,对应单/多文档,会有不同的响应(新建还是重载当前),包括OLE拖拽、命令行参数(这个是在CWinApp中),都有打开文件的相关调用。

但总归最后,打开代码在文档类的基类CDocument 中,这个是开源的,代码如下:

BOOL CDocument::OnOpenDocument(LPCTSTR lpszPathName)
{
    if (IsModified())
        TRACE0("Warning: OnOpenDocument replaces an unsaved document.\n");

    CFileException fe;
    CFile* pFile = GetFile(lpszPathName,
        CFile::modeRead|CFile::shareDenyWrite, &fe);
    if (pFile == NULL)
    {
        ReportSaveLoadException(lpszPathName, &fe,
            FALSE, AFX_IDP_FAILED_TO_OPEN_DOC);
        return FALSE;
    }

    DeleteContents();
    SetModifiedFlag();  // dirty during de-serialize

    CArchive loadArchive(pFile, CArchive::load | CArchive::bNoFlushOnDelete);
    loadArchive.m_pDocument = this;
    loadArchive.m_bForceFlat = FALSE;
    TRY
    {
        CWaitCursor wait;
        if (pFile->GetLength() != 0)
            Serialize(loadArchive);     // load me
        loadArchive.Close();
        ReleaseFile(pFile, FALSE);
    }
    CATCH_ALL(e)
    {
        ReleaseFile(pFile, TRUE);
        DeleteContents();   // remove failed contents

        TRY
        {
            ReportSaveLoadException(lpszPathName, e,
                FALSE, AFX_IDP_FAILED_TO_OPEN_DOC);
        }
        END_TRY
        DELETE_EXCEPTION(e);
        return FALSE;
    }
    END_CATCH_ALL

    SetModifiedFlag(FALSE);     // start off with unmodified

    return TRUE;
}

热心网友 时间:2024-07-26 20:49

这个函数系统写好的,一般我们也不需要改写,你可以查看菜单中Open项的ID(好像是IDR_FILE_OPEN),然后全局搜索这个ID看能不能找到想关联的相应函数吧
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
杭州自驾游必备物品清单_皖浙天路哪里可以露营 杭州临安星泉谷度假村的游玩指南是什么? 杭州周边露营野炊地点有哪些推荐 公司破产后,担保债务是否优先于员工薪资? 破产中行使别除权的人,需否申报债权? 《民法典》下的企业破产后担保债权如何清偿 突然感觉到头晕恶心身体出汗怎么回事 电箱吉他各种效果器连接顺序 彭水县属于重庆哪个市 彭水县属于哪个区管辖 为什么女生每次晚上的时候就说你早点休息吧!明天还要早起,她是...11 火星表面特征 高数证明无穷大的问题 银行卡丢失并挂失了 之前在淘宝上退款还没到账 这笔钱会不会丢...1 淘宝退款的银行卡挂失了,钱会退哪里4 小曾什么时候加入菲利斯团队 格力空调的能效标识上怎么看用电瓦数5 斗战胜佛满背纹身大概需要多少钱1 江城子 十年生死两茫茫中江城子是谁3 我想请问下有源接点或者无源接点接受的信号是数字还是模拟信号,... 空气采样探测器有几个干接点信号? 婴儿游泳馆以后发展前景怎样?可以投水手宝宝婴儿游泳馆吗? 保山学院属于哪个乡镇1 DIY唇膏的详细做法438 蝴蝶乒乓底板中,比波尔精神手感再硬点的板子有哪些啊,达人帮忙... 乒乓球拍底板是硬一点好还是软一点好啊? 华为手机助手怎样切换中文?3 电脑上安装的华为手机助手怎么是英文版的,怎么调成21 两个手机,两个能关联吗?怎样才能看到另一个手机的聊天记录? ...请问用什么考试教材?我有第一版的《会计学》,其和第二版的出入大么... 什么是垂直平分线?详解。 设计一个游戏,如超级玛丽,魂斗罗,坦克等等NES 游戏,需要具备哪些软件... ...吵不过我就打我但是我认为我没错我不想向他们低头怎么办 海尔热水器3000W一天用几度电??? 求问一个高数求无穷大的问题 做三支手工口红的比例2 听说喜瞳视界的视力矫正效果很不错,有人知道哪里有他们的店吗? 孩子在家管不住,老是打游戏,才一年级就已经有150度了 ,我... 先心病导致肺重度高压,能降压动心脏手术吗? 求考研复习计划1 如果祥子穿越到我们现在这个社会,那么他的人生轨迹将会是怎样的...13 求考研复习计划(最好推荐一些详细的资料)急!!1 如何经营水手宝宝婴儿游泳馆呢? ...一直放在冰箱冷冻里,保质期一年,离过期还有半年,但包装 求考研复习计划表157 求考研复习计划(剩余5个月)2 2010年应届毕业生,北京生源,河北高校,请问关于在北京市进行改派的内容... 如果重新注册一个之前的还可以找得回来吗? 我不敢和我爸对视,在他面前我觉得自己既像他又恨他,是一个屈服我爸后... 我在时间尽头等你这句话的意思?13
  • 焦点

最新推荐

猜你喜欢

热门推荐