我用
DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_MAINDLG),NULL,(DLGPROC)MainDlgProc,0);创建一个模式对话框(我的程序主界面),想让它在最小化时缩到托盘,别的我都会,就是ShowWindow出了问题
case WM_SYSCOMMAND:
if(wParam==SC_MINIMIZE)  //确实可以执行ShowWindow
{

ShowWindow(hWnd, SW_HIDE);

// NotifyAdd(hWnd);
}
但只是缩小到任务栏,没有隐藏如果在对话框上建一个按钮,去执行ShowWindow(hWnd, SW_HIDE)去可以隐藏窗口这是为什么?

解决方案 »

  1.   

    if(wParam==SC_MINIMIZE)  //确实可以执行ShowWindow
    {
       // DefWindowProc(hWnd, message, wParam, lParam); //真的让它最小化则取消这行注释
       ShowWindow(hWnd, SW_HIDE);

       // NotifyAdd(hWnd);
       return TRUE; //加上这句。
    }
      

  2.   

    TO : bcpl(林平之) :
    1 加return TRUE确实可以,你能告诉我为什么要加吗?我用按钮去执行ShowWindow(hWnd, SW_HIDE)很好呀
    2 加上DefWindowProc(hWnd, message, wParam, lParam)可以阻止最小化吗?我怎么不行
      

  3.   

    在ShowWindow(hWnd, SW_HIDE);
    后面直接rerurn TRUE;
      

  4.   

    return TRUE 表示消息已经被你处理过了,让系统不要再处理了
    不加DefWindowProc(hWnd, message, wParam, lParam)才是阻止最小化,加了就可以最小化