如何在SDI里屏蔽掉对ONFILESAVE的处理?我想放到MAINFRAME里处理可是发现消息根本发送不到MAINFRAME里

解决方案 »

  1.   

    在CWinApp类中接管ID_FILESAVE消息。
      

  2.   

    AfxGetMainWnd()->SendMessage()
    也不行吗?
      

  3.   

    在CWinApp类中接管ID_FILE_SAVE和ID_FILE_SAVEAS消息的处理。
      

  4.   

    根本不是CWinApp,根据消息处理序列,MAINFRAME比CWinApp还先能得到消息。实际是被CDocument先处理了。CDocument有个保护成员函数OnFileSave专干这事情。
      

  5.   

    我想主要是为了屏蔽用户在界面上对 保存文件 的调用,所以CWinApp即可。
      

  6.   

    对不起,hnyyy(前进) 是对的。我现在的系统是VS.NET,刚才试验后发现CDocument子类比CWinApp子类先获得控制权,与我记忆中VS6项目时的情况不一至;当时接管ID_FILE_OPEN和SAVE的主要目的是在打开和保存文件对话框中提供新式有导航面板的对话框,当时是在应用的CWinApp子类中实现的。
      

  7.   

    该ID肯定能行,我就是这么用的,不过我想屏蔽掉CDocument对ONFILESAVE的处理.
    并且放在MAINFRAME中进行处理.