/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Pantalla completa en C

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Lucer



Registrado: 10 Abr 2005
Mensajes: 5

MensajePublicado: 07/06/2005 5:37 am
Título: Pantalla completa en C

Hola,

Quisiera saber como pasar un programa ejecutado en consola ms dos a pantalla completa (es decir simular mediante un comando o alguna orden el ALT+INTRO). Trabajo en el Dev C++ y solo programo en C. Me podrian ayudar. Gracias


Wink
Volver arriba
pitukilloloco



Registrado: 11 May 2005
Mensajes: 442

MensajePublicado: 07/06/2005 7:11 am
Título:

Si lo que quieres es que mediante alguna función dentro de tu programa en C se posicione tu programa ocupando toda la pantalla tal como si hubieras presionado la combinación de teclas [Alt] [Intro] entonces me parece que no lo puedes hacer, ya que para el programa la consola es todo su marco de referencia y esto viene dado por Windows, como cuando cambias el tipo o tamaño de las letras. Windows proporciona un conjunto de funciones que puedes usar en modo consola, como manejar el ratón o cambiar los colores con que se muestra el texto, pero viendo todas estas funciones con el MSDN no vi ninguna con la cual pudieras hacer lo que quieres.
Volver arriba
NELVIANT



Registrado: 04 Abr 2005
Mensajes: 151

MensajePublicado: 07/06/2005 7:47 am
Título:

Hola,

si estas en Windows XP puedes hacer los siguiente:

Código:

int main()
{
  SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),1,NULL);

  ....
}


Si el compilador no te reconoce la funcion tendras que cargarla con GetProcAddress desde Kernel32.dll

Un saludo
Volver arriba
Alejandro_



Registrado: 26 Mar 2005
Mensajes: 254
Ubicación: Buenos Aires

MensajePublicado: 07/06/2005 6:51 pm
Título: Pantalla completa

Para simular la combinación ALT+ENTER, tienes la función keybd_event(). Acá abajo pongo un ejemplo bastante poco cuidado, por cierto, pero ustedes entenderán...

Código:
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
   keybd_event(VK_MENU,0,0,0);       // Presiona ALT
   keybd_event(VK_RETURN,0,0,0);     // Presiona ENTER
   keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);   // Libera ALT
   keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); // Libera ENTER
   cout << "\n\nHola Mundo! En pantalla completa..." << endl;
   system("PAUSE");
   
   keybd_event(VK_MENU,0,0,0);  // lo mismo que arriba
   keybd_event(VK_RETURN,0,0,0);
   keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
   keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
   cout << "Desde la ventana...\nAdios mundo cruel!" << endl;
   system("PAUSE");
   
   return EXIT_SUCCESS;
}


Alejandro
Volver arriba
pipecan



Registrado: 26 Ene 2006
Mensajes: 2

MensajePublicado: 26/01/2006 5:32 am
Título: Hola

A mi me funciono de la siguiente manera:
Con el siguiente codigo

#include <iostream>
#include <windows.h>

using namespace std;

main(){

HANDLE hConsoleOutput;

hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleDisplayMode(hConsoleOutput,1,NULL);

cout<<"Hola mundo\n";
system("pause");
}


Ademas en la libreria "includes\wincon.h" busca una declaracion que es asi

#if (_WIN32_WINNT >= 0x0501)
BOOL WINAPI SetConsoleDisplayMode(HANDLE,DWORD,PCOORD);
#endif

y desactiva la condicion para que se pueda declarar la funcion SetConsoleDisplayMode y guarda

//#if (_WIN32_WINNT >= 0x0501)
BOOL WINAPI SetConsoleDisplayMode(HANDLE,DWORD,PCOORD);
//#endif

esto en windows xp y con Dev c++
Volver arriba
Gabriel_p



Registrado: 11 Ago 2010
Mensajes: 1

MensajePublicado: 22/12/2011 3:14 pm
Título:

a mi no me funciona en windows 7. cuando presiono la combinacion alt+enter me salta un error q dice: "este sistema no es compatible con el modo pantalla completa". Si alguien sabe de alguna solucion.garcias
Volver arriba
untio



Registrado: 17 Sep 2008
Mensajes: 290
Ubicación: MICA S.A.

MensajePublicado: 24/12/2011 5:48 am
Título:

Hola,

Sólo quiero indicar que poner el comentario en la línea:

//#if (_WIN32_WINNT >= 0x0501)

No ayuda para nada. Más bien puede traer problemas al usuario de vuestro programa si usa una versión de Windows anterior a XP, porque en esos sistemas la función que viene después no funciona.

Si queréis usar la función que viene después en XP, escribid antes de incluir ningún fichero de cabecera:

#define _WIN32_WINNT 0x0501

Pero haréis vuestro programa compatible sólo con versiones iguales o mayores al sistema que ya he comentado.

Ah, y me parece que la función que queréis usar no está implementada en windows 7. Va siendo hora de empezar a hacer programas con interfaces gráficas (ventanas).

Espero que sea útil.
_________________
Hago algo muy raro: primero leo las instrucciones.
Volver arriba
Yahoo Messenger
cheroky



Registrado: 22 Sep 2005
Mensajes: 2479
Ubicación: Valladolid (España)

MensajePublicado: 24/12/2011 10:08 am
Título:

Hola.

No, en windows 7 y vista no hay consola maximizada sin ventana. Tuve que hacer un port a este sistema de un programa de meteorología escrito en curses (muy bueno por cierto) y la solución fue consultar la resolución del escritorio y redimensionar la ventana.


·?0ƒ·
_________________
La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí.
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com