C/Visual C - Cambiar resolución

 
Vista:

Cambiar resolución

Publicado por Arisee (37 intervenciones) el 17/06/2003 11:55:41
Estoy con una aplicacion basada en MFC con VC++ 6.0 y necesito cambiar la resolución de pantalla. El problema es ke muestro por pantalla graficas y bmp's y me gustaria que siempre que fuese posible poner la resolución de pantalla optima. De esta forma siempre se verá la aplicación de forma similar. Gracias por adelantado.
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
Imágen de perfil de Alejandro

Cambiar la resolución de pantalla en una aplicación MFC con VC++ 6.0

Publicado por Alejandro (1286 intervenciones) el 03/07/2025 23:38:01
Para cambiar la resolución de pantalla en una aplicación MFC utilizando Visual C++ 6.0, puedes seguir estos pasos. Esto te permitirá establecer una resolución óptima para que tus gráficos y BMPs se muestren de manera consistente.

1. Uso de `ChangeDisplaySettings()`



La función `ChangeDisplaySettings()` de la API de Windows te permite cambiar la resolución de pantalla programáticamente. Aquí tienes un ejemplo de cómo implementarlo en tu aplicación MFC:

2. Ejemplo de código



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <windows.h>
 
// Función para cambiar la resolución de pantalla
bool CambiarResolucion(int ancho, int alto, int profundidadColor) {
    DEVMODE dm;
    ZeroMemory(&dm, sizeof(dm));
    dm.dmSize = sizeof(dm);
    dm.dmPelsWidth = ancho;
    dm.dmPelsHeight = alto;
    dm.dmBitsPerPel = profundidadColor;
    dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
 
    // Cambia la resolución
    if (ChangeDisplaySettings(&dm, 0) != DISP_CHANGE_SUCCESSFUL) {
        return false; // Fallo al cambiar la resolución
    }
    return true; // Cambio exitoso
}
 
// Ejemplo de uso en tu aplicación MFC
void CMyApp::OnInitDialog() {
    CDialog::OnInitDialog();
 
    // Cambiar a una resolución óptima
    if (!CambiarResolucion(1920, 1080, 32)) { // Cambia a 1920x1080 con 32 bits de color
        AfxMessageBox(_T("No se pudo cambiar la resolución de pantalla."));
    }
 
    // Resto de la inicialización
}

3. Consideraciones



- Resolución óptima: Asegúrate de que la resolución que deseas establecer sea compatible con el monitor del usuario. Puedes obtener las resoluciones soportadas utilizando `EnumDisplaySettings()`.

- Restaurar resolución: Considera restaurar la resolución original cuando tu aplicación se cierre. Puedes hacerlo llamando a `ChangeDisplaySettings(NULL, 0)`.

- Permisos: Cambiar la resolución de pantalla puede requerir permisos de administrador, así que asegúrate de que tu aplicación tenga los permisos necesarios.

4. Pruebas



Realiza pruebas en diferentes configuraciones de pantalla para asegurarte de que tu aplicación se vea bien en todas las resoluciones. Esto es especialmente importante si tu aplicación se utilizará en diferentes entornos.

Con estos pasos, deberías poder cambiar la resolución de pantalla en tu aplicación MFC y asegurarte de que tus gráficos y BMPs se muestren de manera óptima. ¡Buena suerte, Arisee!
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