如何将创建的程序不显示(对话框程序)?我设置了STARTF_USESHOWWINDOW和SW_HIDE,可是对对话框程序好像没有用处,只对控制台程序有用.

解决方案 »

  1.   

    you need to use STARTF_USESHOWWINDOW flag
    If this value is not specified, the wShowWindow member is ignored.
      

  2.   

    see the sample below, useful :http://www.codeproject.com/dialog/resizabledialog.asp
      

  3.   

    wShowWindow参数只对第一次ShowWindow有效,以后的ShowWindow调用除非设置了SW_SHOWDEFAULT才有效。CDialog的DoModal内部应该多次调用了ShowWindow,所以你可能要重载DoModal及其他函数。你可以在createprocess后用:
    HWND hw=::FindWindow("#32770","DlgTitle");
    ::ShowWindow(hw,SW_HIDE);来隐藏DLG.
      

  4.   

    sorry.
    1. you can specify a different desktop in startupinfo structure, the dialog program should be invisible.2.createprocess with CREATE_SUSPENDED flag, inject some thing into the new process to prevent dialog from showing, then resume it.