• Miércoles 1 de Mayo de 2024, 21:03

Autor Tema:  Re: Iniciar aplicacion MDI sin ventana hija  (Leído 1584 veces)

rauldefp

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Iniciar aplicacion MDI sin ventana hija
« en: Miércoles 26 de Marzo de 2003, 12:34 »
0
Hola

Me gustaría saber si alguien conoce en Visual C++ el modo de hacer que en una aplicación MDI, al comenzar la ejecución de la aplicación, no se llame al método OnNewDocument de la clase documento, es decir que no se cree ninguna ventana hija (ningún documento nuevo) al inicial la aplicación.

Gracias.

CmaniaC

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Iniciar aplicacion MDI sin ventana hija
« Respuesta #1 en: Viernes 9 de Mayo de 2003, 00:54 »
0
Esta misma pregunta la hize yo alguna vez  (CmaniaC) y encontre una forma muy sencilla de hacerlo (Tal vez no se a la mejor pero funciona perfectamente...)

1.  En tu clase CXXXDoc  crea una variable
     booleana (Por ejemplo vacio)

2.  En el constructor de esta la inicializas  
    en  vacio = false;

3. en la función ::OnNewDocument()
    pon esto:

if (!CDocument::OnNewDocument())
   return FALSE;
//------------------------esto....
  if (!vacio)
    {
     vacio = true;
     return false;
    }
//-----------------------fin...

// TODO: add reinitialization code here
// (SDI documents will reuse this ocument)

return TRUE;
   
4.  El programa iniciará sin ventana hija...
     lo mejor de esto es que hasta los
     íconos están desabilitados.

5.  En el momento en que elias nuevo
     tu aplicación funcionará normalmente

6.   :good:

ipis

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Iniciar aplicacion MDI sin ventana hija
« Respuesta #2 en: Martes 26 de Agosto de 2003, 16:19 »
0
Yo tengo otra forma de lograr que al iniciar la aplicacion no aparezca ninguna ventana hija,usando la funcion CCommandLineInfo::FileNothing en InitInstance() del fichero de la aplicacion.

Para ser mas claros,aki hay un ejemplo:

BOOL CMyWinApp::InitInstance()
{
...
// Parse command line for standard shell commands, DDE, file open
   CCommandLineInfo cmdInfo;
   ParseCommandLine(cmdInfo);
// DON'T display a new MDI child window during startup!!!
   cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
// Dispatch commands specified on the command line
   if (!ProcessShellCommand(cmdInfo))
      return FALSE;
...
};

Esta sacado de la ayuda de CCommandLineInfo,de VC++,por si kieres echar 1 vistazo mas profundo....

Salu2