Me he encontrado con un problema interesante. Al menos en Vista, getSystemMetrics (SM_CXSCREEN) devuelve un valor incorrecto cuando la configuración de DPI de escritorio no está configurada al 100%. Por ejemplo, he intentado 150% en una pantalla de 1366x768 y GetSystemMetrics() devuelve 911 en lugar de 1366 (y 1366/1,5 ~ 911)GetSystemMetrics() devuelve el valor incorrecto para SM_CXSCREEN
Según la MSDN, GetSystemMetrics (SM_CXSCREEN) devuelve píxeles, así que pensé este valor wouldn No se verá afectado por la configuración de DPI, pero sí lo es. Entonces, ¿hay una manera más segura de descubrir la resolución de pantalla real sin escala?
¿A qué tipo de aplicación llamas? Intenté llamar a esa API desde C y ejecutarla en Vista Business en diferentes configuraciones de DPI y diferentes resoluciones e informó los píxeles correctamente en cada instancia. Es una imagen vmware, así que tal vez eso causa una diferencia. –
Es una aplicación regular, sin formato de C++. Sin marcos estándar, solo WinMain. – ggambett