如何更改框架生成的“新建”和“保存”命令?

zhuzebin 2004-08-04 09:12:00
我想更改框架生成的“新建”和“保存”命令,但是在CChildFrame中映射ID_FILE_OPEN,再设断点看有没有执行到这,结果没有啊,应该怎么更改它的默认行为呢?
...全文
289 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
superhandsome 2004-08-28
  • 打赏
  • 举报
回复
UP
北狐狸 2004-08-21
  • 打赏
  • 举报
回复
up
zhuzebin 2004-08-21
  • 打赏
  • 举报
回复
在CMainFrame重载了,但它不执行我重载的消息处理函数.
superhandsome 2004-08-20
  • 打赏
  • 举报
回复
CMainFrame里重载这几个消息不就行了!!!
zhaogaojian 2004-08-17
  • 打赏
  • 举报
回复
重载OnCmdMsg()在此之前消息已经被拦截,找到拦截的框架类例如:
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: Add your specialized code here and/or call the base class
if(nID==ID_FILE_NEW)return false;
return CMDIFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
//当然不一定非这样添在这儿,
招财猫_Martin 2004-08-08
  • 打赏
  • 举报
回复
// 在MainFrm.cpp文件中:
// 这里是消息映射

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_COMMAND(ID_FILE_NEW, CMainFrame::OnFileNew) //映射到CMainFrame的OnFileNew
ON_WM_CREATE()
// 全局帮助命令
ON_COMMAND(ID_HELP_FINDER, CFrameWnd::OnHelpFinder)
ON_COMMAND(ID_HELP, CFrameWnd::OnHelp)
ON_COMMAND(ID_CONTEXT_HELP, CFrameWnd::OnContextHelp)
ON_COMMAND(ID_DEFAULT_HELP, CFrameWnd::OnHelpFinder)
END_MESSAGE_MAP()
招财猫_Martin 2004-08-08
  • 打赏
  • 举报
回复
1、当没有任何文档被打开时,MFC框架会映射CWinApp中的ID_FILE_NEW
2、当文档被打开时,如在文档类中响应ID_FILE_NEW,则MFC会映射到C***Doc中的OnFileNew()
3、当然,你也可以在CMainFrame里面映射ID_FILE_NEW
zhuzebin 2004-08-07
  • 打赏
  • 举报
回复
我添加了啊,可是它不执行我这个啊,执行了默认的.
iamastudent 2004-08-07
  • 打赏
  • 举报
回复
利用向导添加“ID_FILE_NEW”的消息函数
kvw3000 2004-08-05
  • 打赏
  • 举报
回复
mark,帮顶
enoloo 2004-08-04
  • 打赏
  • 举报
回复
在CMDIFrameWnd::OnCreate中创建mdi子窗口。

可以在mdi子窗口中添加WM_CREATE的处理,每次默认的新建,打开动作,都会调用他。
zhuzebin 2004-08-04
  • 打赏
  • 举报
回复
怎么没人来啊?
zhuzebin 2004-08-04
  • 打赏
  • 举报
回复
一定要在在CMainFrame中响应这个命令吗?
那如果已经打开了一个或多个视后,不就是进入到CChildFrame了吗?
如果是这样的话,再按这些命令的话不就是调用了CChildFrame中的响应函数吗?
我是新手,请大家指点指点.
DentistryDoctor 2004-08-04
  • 打赏
  • 举报
回复
因为这些行为都是MFC类的缺省行为。你需要自己呼应这两个命令。
FlyNesta 2004-08-04
  • 打赏
  • 举报
回复
在CMainFrame中响应这个命令
Kudeet 2004-08-04
  • 打赏
  • 举报
回复
一.创建文档
ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew)
入口:CWinApp::OnFileNew
CWinApp对OnFileNew的默认实现是调用:CdocManager::OnFileNew()
1.判断有无文档模板,无则函数返回;
2.判断是否有多个文档模板,如有则启动文档模板选择对话框,让用户选择一个模板后,返回模板指针.
3.由模板指针访问CMultiDocTemplate::OpenDocumentFile()
3.1 创建新文档对象
3.2 创建与新文档对象对应的子框架,构筑子框架,文档和视窗之间的关系
3.3 调用应用程序的OnNewDocument()
a.调用CDocument::OnNewDocument()
调用应用程序的DeleteContents();
b.用户代码
3.4 调用InitialUpdateFrame()显示视窗
3.5 返回文档指针
4.返回

snowx 2004-08-04
  • 打赏
  • 举报
回复
去文档类里面重载,新建 保存 都是 CDocument的动作,文档类里提供了接口的
snowx 2004-08-04
  • 打赏
  • 举报
回复
q

16,551

社区成员

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

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

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