C/Visual C - Maximizar el marco de aplicacion

 
Vista:

Maximizar el marco de aplicacion

Publicado por Nelek (816 intervenciones) el 14/03/2007 16:11:46
Hola,

se que parecera de novatos (en parte lo soy), pero... Donde narices puedo conseguir que al iniciar la aplicacion lo haga a pantalla completa?

Ya he probado en:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;

cs.style = cs.style | WS_MAXIMIZE; <----- Esto es lo que puse

return TRUE;
}

Pero lo que hace es maximizarme el marco de la vista principal, no el marco de la aplicacion (que es lo que yo quiero).

Tambien he probado en:

BOOL CMyApp::InitInstance()
{
//...

CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;

m_pMainWnd->ModifyStyle (0, WS_MAXIMIZE, 0);
pMainFrame->ModifyStyle (0, WS_MAXIMIZE, 0);

//...
}

Y tampoco he logrado lo que queria...

Donde tengo que hacerlo?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Maximizar el marco de aplicacion

Publicado por fernando.gomez (1603 intervenciones) el 14/03/2007 19:23:16
El miembro ModifyStyle modifica el estilo asociado a la ventana, pero a nivel de bytes. Es decir, al establecer WS_MAXIMIZE, matas los estilos anteriormente seleccionados. Lo más recomendable es hacer un "or" de bits con los estilos que ya tienes: GetStyle() | WS_MAXIMIZE.

En fin, la forma más fácil -como yo siempre lo hago- es en el ShowWindow.

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Maximizar el marco de aplicacion

Publicado por Nelek (816 intervenciones) el 15/03/2007 07:29:53
Hola,

que conste que no es que me crea lo que dices (ya he constatado que las ayudas de MSDN no siempre son lo que pone), pero yo lo elegí por lo que dicen:

BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );

Primer termino , borra. Segundo aniade. Tercero, ubica en pantalla

O al menos asi es como lo entendi. No me imagine que sobreescribiera. Supuse que la funcion ya implementaria el "or" dentro de ella ya que dicen que aniade el estilo.

Gracias por la respuesta :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Maximizar el marco de aplicacion

Publicado por fernando.gomez (1603 intervenciones) el 15/03/2007 23:14:36
aaaaaaah!!!! Mil perdones, me confundí con SetStyle... chale, debo de dejar de fumar esas cosas...

Disculpas de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Maximizar el marco de aplicacion

Publicado por Nelek (816 intervenciones) el 16/03/2007 08:06:11
Jajajajajajajaja,

O al menos dejartelas para el fin de semana :P

De todas maneras... no funciono la prueba con ese ModifyStile... asi que al final he usado:

BOOL CMyApp::InitInstance ()
{
// tralla del asistente, mis plantillas pa las views aniadidas, creacion del
// MainFrame y demas...

// Das Hauptfenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
pMainFrame->ShowWindow(m_nCmdShow | SW_SHOWMAXIMIZED);
pMainFrame->UpdateWindow();
}

Asi se abre la aplicacion maximizada, pero....

Cuando en el MainFrame le pongo

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
// CREATESTRUCT cs modifizieren.

cs.style = cs.style | WS_MAXIMIZE;

return TRUE;
}

Me abre la vista principal maximizada... pero al tamanio que tenia antes el marco de aplicacion, creo que por el "Default rect", ademas de no poder agrandar el marco antes de crear la ventana en si. Ya he recibido mis assertions haciendo pruebas y demas :P Aun tengo que ganar practica con el tema de las clases "windows" y su orden de ejecucion.

De todas maneras... conforme funciona ahora... me sirve :)

P.D. Hoy he dejado los comentarios del asistente en aleman para que te entretengas un poquito ;) :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar