重载 WndProc() 可以吗?

解决方案 »

  1.   

    http://codeguru.earthweb.com/shell/systemtray.shtml
    http://codeguru.earthweb.com/shell/animtray.shtml
    http://codeguru.earthweb.com/shell/tbhide.html
      

  2.   

    masterz()你的例子都是处理对话框的!!我就是不知道基于document/view结构的情况!
      

  3.   

    帅哥,让我告诉你吧,我用API函数来表达了,我已经调试了,一点问题都没有,完全可以捕获最小化按钮.          你怎么那么多分?给我50怎么样?以后我们继续讨论.
    case WM_NCLBUTTONDOWN:
      if ((INT)wParam==HTMINBUTTON)
    {
             ...(此处加入你的代码)  
    break;
    }
             DefWindowProc(hWnd, message, wParam, lParam);
    break;
    case.........()
      

  4.   


    BOOL CWINDOW::PreTranslateMessage(MSG* pMsg) 
    {switch(pMsg->MESSAGE)
     case WM_NCLBUTTONDOWN:
      if ((INT)wParam==HTMINBUTTON)
    {
            ...(此处加入你的代码) 
     } 
    break;
    }


    return CWINDOW::PreTranslateMessage(pMsg);
    }
      

  5.   

    你的这个程序其实很简单的。
    首先要响应最小化按钮,应该重载CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)函数,添加:
    if(nID == SC_MINIMIZE)
    {
        ShowWindow( SW_MINIMIZE );//这句话有最小化的动画效果
        ShowWindow( SW_HIDE );//隐藏
    }
    其次要响应关闭,在上述函数也可以实现,不过要全面一些最好是响应WM_CLOSE消息:
    CMainFrame::OnClose()
    {
        ShowWindow( SW_MINIMIZE );//这句话有最小化的动画效果
        ShowWindow( SW_HIDE );//隐藏
    }
    再自己做一个关闭的菜单或者按钮即可。
      

  6.   

    a_kun(狂人日记)的方法可行,我曾经这样编程实现。