SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: rauldefp en Miércoles 26 de Marzo de 2003, 12:34
-
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.
-
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:
-
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