我原欲拦截按下最小化按钮后的WM_SYSCOMMAND,在基于对话框的应用程序中容易实现,因AppWizard原本就生成了这个OnSysCommand()函数。
但在SingleView的窗口下就傻了,本竟没有提供这个可爱的OnSysCommand(),我于是自己仿Dialog中的写了一个,编译通过,运行时却毫无反应,根本就未执行到此函数。
有问,能否解释一下这个对WM_SYSCOMMAND的处理机制,为啥Dialog类型的程序中写OnSysCommand有用,文档视图类的程序中却不行。

解决方案 »

  1.   

    你在FrameWnd(框架窗口里)拦截看看行不行,
    这类消息估计都已经被处理了。
      

  2.   

    不行的.
    所以很奇怪的说,CWnd::OnSysCommand()这个函数根本就不是virtual的,但在Dialog中重写就可以响应,到了正经窗口中却不行了。
    还请高人赐教啊~~~`
      

  3.   

    你是想在SDI中拦子窗口的WM_SYSCOMMAND,还是主窗口的WM_SYSCOMMAND?
      

  4.   

    我错了。
    感谢钱瑚。在FrameWnd中可行。多谢~~~~