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