0
此代码尝试为用户显示器尺寸计算出最佳窗口大小。要做到这一点,我试图检测用户监视器的长宽比。检测宽屏幕宽高比
这种方法,我使用的作品适当4:3,16:9,16:10分辨率,但它失败(进入默认的情况下)21:因为2560 * 21 != 1920 * 9
9分辨率。如何正确检测宽屏幕宽高比的宽高比?
dm.w
和dm.h
是宽度和当前的分辨率
if(dm.h * 4 == dm.w * 3) { // 4:3
screen_width = 1024;
screen_height = 768;
} else if(dm.h * 16 == dm.w * 9) { // 16:9
screen_width = 1366;
screen_height = 768;
} else if(dm.h * 16 == dm.w * 10) { // 16:10
screen_width = 1440;
screen_height = 900;
} else if(dm.h * 21 == dm.w * 9) { // 21:9
screen_width = 1920;
screen_height = 720;
} else {
Printf("Unknown aspect ratio. Defaulting to 1024x768\n");
screen_width = 1024;
screen_height = 768;
}
你*知道还有更多可能的解决方案吗?例如1280x800如何?或者非常常见的1920x1080?或者(不幸的是)1920x1200?或者现代27或30(或更大)英寸显示器的分辨率更高? –
您的意思是说这些解决方案不会被正确检测到吗? –
您不应该使用宽高比来检测分辨率。相反,每个操作系统都具有获取实际分辨率的功能,以及所有支持的分辨率。如果你真的想要高宽比,一旦你有了分辨率就很容易计算。 –