我现在要实现的程序是单击对话框上的一个按钮后,启动一个线程,在该线程里通过CreateProcess启动一个exe程序,当把该程序最小化后,再通过单击对话框上的一个按钮,能将刚才最小化的exe程序恢复成全屏,也就是窗口最大化。请问如何实现这个窗口最大化,关键是这个exe程序是通过线程中调用CreateProcess启动起来的。

解决方案 »

  1.   

    LONG SetWindowLong(
      HWND hWnd,       // handle to window
      int nIndex,      // offset of value to set
      LONG dwNewLong   // new value
    );可以如此调用:
    SetWindowLong(hWnd, GWL_STYLE, WS_MAXIMIZE);
      

  2.   

    用SendMessage()向你创建的进程发最大化消息
      

  3.   

    PostMessage(hWnd,WM_SYSCOMMAND,SC_MAXIMIZE)
      

  4.   

    请问如何找到该exe程序的窗口句柄?多谢了!
      

  5.   

    findwindow第一个参数要classname,我怎么知道这个exe程序的classname是什么?多谢了!
      

  6.   

    GetClassName
    The GetClassName function retrieves the name of the class to which the specified window belongs. int GetClassName(
      HWND hWnd,           // handle to window
      LPTSTR lpClassName,  // class name
      int nMaxCount        // size of class name buffer
    );
    先在你的EXE中找到, 记下来,就可以从另外一个EXE中 FINDWINDOW 来找这个窗口的句柄
      

  7.   

    FindWindow查找标题,或类名
    或者枚举窗口
      

  8.   

    PostMessage(hWnd,WM_SYSCOMMAND,SC_MAXIMIZE)
      

  9.   

    用FindWindow取得窗口句柄,然后SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);
      

  10.   

    : kugou123(酷狗)(每天学VC,补充你我的维C) 的方法很对。。用FindWindow取得窗口句柄,然后SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);
    你是最小化的嘛,,那肯定是有窗口嘛。。你把FindWindow的第一个参数设为空。。没问题!