请问各位高手如何才能截获窗口最小化时的消息?

解决方案 »

  1.   

    你应该截取 WM_SYSCOMMAND消息。该消息参数为: 
        uCmdType = wParam; // type of system command requested 
        xPos = LOWORD(lParam); // horizontal postion, in screen coordinates 
        yPos = HIWORD(lParam); // vertical postion, in screen coordinates 
        其中uCmdType表示用户的选择: 
        SC_CLOSE Closes the window. 
        SC_CONTEXTHELP Changes the cursor to a question  with a pointer. If the user then clicks a control in the dialog box, the control receives a WM_HELP message. 
        SC_DEFAULT Selects the default item; the user double-clicked the System menu. 
        SC_HOTKEY Activates the window associated with the application-specified hot key. The low-order word of lParam identifies the window to activate. 
        SC_HSCROLL Scrolls horizontally. 
        SC_KEYMENU Retrieves the System menu as a result of a keystroke. 
        SC_MAXIMIZE (or SC_ZOOM) Maximizes the window. 
        SC_MINIMIZE (or SC_ICON) Minimizes the window. 
        SC_MONITORPOWER Windows 95 only: Sets the state of the display. This command supports devices that have power-saving features, such as a battery-powered personal computer. 
        SC_MOUSEMENU Retrieves the System menu as a result of a mouse click. 
        SC_MOVE Moves the window. 
        SC_NEXTWINDOW Moves to the next window. 
        SC_PREVWINDOW Moves to the previous window. 
        SC_RESTORE Restores the window to its normal position and size. 
        SC_SCREENSAVE Executes the screen saver application specified in the [boot] section of the SYSTEM.INI file. 
        SC_SIZE Sizes the window. 
        SC_TASKLIST Executes or activates Windows Task Manager. 
        SC_VSCROLL Scrolls vertically. 
      

  2.   

    void CYWnd::OnSysCommand(UINT nID, LPARAM lParam)
    {
    if( nID == SC_MINIMIZE )
    {
                  .......
    return;
    }
    ...