我该怎么做?如果你可以请包括消息地图的代码和功能本身,那将非常感激。
编辑:
更具体地说,我想知道OnFileSave()如何链接到OnSaveDocument(LPCSTR lpszPathName) OnFileSave如何获取lpszPathName?
答案 0 :(得分:1)
您不需要做任何特别的事情来覆盖OnSaveDocument(...)
它已经是CDocument中的虚拟功能,因此您的派生类只能在其中声明virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
' s标题,然后在文档中实现它。消息映射中不需要任何内容。框架将OnSaveDocument作为OnFileSave的一部分调用,OnFileSave是ID_FILE_SAVE基类中的处理程序。 lpszPathName在OnFileSafe调用时引用m_strPathName,它在打开文件或调用SetPathName时设置。如果保存时它为空,则会提示用户输入文件名。
答案 1 :(得分:0)
CDocument :: OnFileSave是“保存”菜单命令的消息处理程序。要自己处理它,请将它放在文档类消息映射中:
ON_COMMAND(ID_FILE_SAVE, OnFileSave)
并添加你的功能:
void CYOURDOCUMENT::OnFileSave()
{
CDocument::OnFileSave();
}
要查看它所做的一切,请在函数中设置断点并开始单步执行。