Ho riscontrato un problema interessante. Almeno in Vista, getSystemMetrics (SM_CXSCREEN) restituisce un valore errato quando le impostazioni DPI del desktop non sono impostate al 100%. Ad esempio, ho provato il 150% in uno schermo 1366x768 e getSystemMetrics() restituisce 911 anziché 1366 (e 1366/1.5 ~ 911)GetSystemMetrics() restituisce un valore errato per SM_CXSCREEN
In base a MSDN, getSystemMetrics (SM_CXSCREEN) restituisce i pixel, quindi ho pensato che questo valore non avrebbe essere influenzato dalle impostazioni DPI - ma lo è. Quindi c'è un modo più sicuro per scoprire la vera risoluzione dello schermo non graduata?
Da che tipo di applicazione si chiama questo? Ho appena provato a chiamare quell'API da C e l'ho eseguito su Vista Business con impostazioni DPI diverse e risoluzioni diverse e ha riportato i pixel correttamente in ogni istanza. È un'immagine vmware, quindi forse questo fa la differenza. –
È un'app C++ normale e semplice. Nessun framework standard, solo WinMain. – ggambett