Hola a todos.
en esta ocacion tengo el siguiente problema, necesito que mi aplicacion al ejecutarse cambie la resolucion de la pantalla para que se ajuste a las dimenciones en la que la realice, esto lo consigo con el siguiente codigo:
void __fastcall TForm1::FormActivate(TObject *Sender)
{
int indice=0;
DEVMODE displaymode;
displaymode.dmSize=sizeof(DEVMODE);
while(EnumDisplaySettings(NULL, indice, &displaymode)){
if(displaymode.dmPelsWidth==1024 && displaymode.dmPelsHeight==768){
displaymode.dmFields=DM_PELSWIDTH | DM_PELSHEIGHT;
LONG result=ChangeDisplaySettings(&displaymode, CDS_TEST);
if(result==DISP_CHANGE_SUCCESSFUL){
ChangeDisplaySettings(&displaymode,0);
break;
}
}
indice++;
}
}
y lo que quiero es que al cerra la aplicacion regrese la resolicion a la que tenia originalmente, el problema es que no se como hacer para tomar presisamente ese dato, eh intentado capturarlo de la siguiente manera:
void __fastcall TForm1::FormActivate(TObject *Sender)
{
int indice=0;
DEVMODE displaymode;
displaymode.dmSize=sizeof(DEVMODE);
/*declaro dos variables globales que en teoria almacenan la resolucion actual
que tiene la pantalla
*/
X=displaymode.dmPelsWidth;
Y=displaymode.dmPelsHeight;
while(EnumDisplaySettings(NULL, indice, &displaymode)){
if(displaymode.dmPelsWidth==1024 && displaymode.dmPelsHeight==768){
displaymode.dmFields=DM_PELSWIDTH | DM_PELSHEIGHT;
LONG result=ChangeDisplaySettings(&displaymode, CDS_TEST);
if(result==DISP_CHANGE_SUCCESSFUL){
ChangeDisplaySettings(&displaymode,0);
break;
}
}
indice++;
}
}
y en el evento de close tengo el siguiente codigo en el que intento regresar la resolucion que previamente capture:
int indice=0;
DEVMODE displaymode;
displaymode.dmSize=sizeof(DEVMODE);
while(EnumDisplaySettings(NULL, indice, &displaymode)){
if(displaymode.dmPelsWidth==X && displaymode.dmPelsHeight==Y){
displaymode.dmFields=DM_PELSWIDTH | DM_PELSHEIGHT;
LONG result=ChangeDisplaySettings(&displaymode, CDS_TEST);
if(result==DISP_CHANGE_SUCCESSFUL){
ChangeDisplaySettings(&displaymode,0);
break;
}
}
indice++;
}
el problema es que en las variables X y Y yo esperaba que se almacenara algo como 1024 y 768,pero se almacena un numero muy grando algo como 172859635, alguien sabe como capturar la resolucion actual o que es lo que realmente me representa ese numero que me retorna??
de antemano muchas gracias por su tiempo y ayuda.