我想隐藏所有窗口后再改变他们的位置和大小,然后再同时显示!试过最小化,但最小化后就不能改变大小了!我知道可以用枚举的方法找到进程中的所有打开窗口,然后用showwindow函数来一个一个隐藏,但有没有更好的方法?

解决方案 »

  1.   

    我不知道这样行不行,你试试
    给窗口添加WM_SHOWWINDOW消息,在消息处理函数void CXXXXXDlg::OnShowWindow(BOOL bShow, UINT nStatus)中,添加如下代码void CxxxxxDlg::OnShowWindow(BOOL bShow, UINT nStatus)
    {
    if( GetStyle() & WS_VISIBLE )
    {
    CDialog::OnShowWindow(bShow, nStatus);
    }
    else
    {
    long Style = ::GetWindowLong(*this,GWL_STYLE);
    ::SetWindowLong(*this,GWL_STYLE,Style | WS_VISIBLE);
    CDialog::OnShowWindow(SW_HIDE,nStatus);
    }
    }这个功能是实现程序在启动执行的时候窗口隐藏
      

  2.   

    恩,也许是用的BeginDeferWindow等函数同时改变!