이 코드는 사용자 모니터 크기에 가장 적합한 창 크기를 찾으려고합니다. 이렇게하려면 사용자 모니터의 종횡비를 감지하려고합니다.와이드 화면 가로 세로 비율 감지
내가 사용하는이 방법은 4 : 3, 16 : 9, 16:10 해상도에서는 제대로 작동하지만 2560 * 21 != 1920 * 9
이므로 21 : 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 (또는 더 큰) 인치 디스플레이는 어떻습니까? –
당신은 그 결의안이 이것으로 제대로 감지되지 않을 것이라는 것을 의미합니까? –
해상도를 감지하기 위해 가로 세로 비율을 사용해서는 안됩니다. 대신 각 운영 체제에는 이미 실제 해상도와 지원되는 모든 해상도를 가져 오는 기능이 있습니다. 가로 세로 비율을 원한다면 일단 해상도를 얻으면 쉽게 계산할 수 있습니다. –