Tam ekranlı bir 3D oyun yazıyorum ve kullanıcının ekran kapasitesini donanım kapasitesine uyacak şekilde seçebileceği bir menü oluşturdum. Böyle EnumDisplaySettingsExA
ileKodda kaydırma ve normal ekran modları arasında ayrım yapın - Windows
Ben numaralandırılırken am mevcut tüm ekran modları: Ben pan-modları yanı alıyorum
std::vector<DEVMODEA> modes;
DEVMODEA modeInfo;
int modeNum = -1;
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) {
if (modeInfo.dmBitsPerPel < 16) continue;
modes.push_back(modeInfo);
}
sorun var! Hangisini ayırt edemiyorum; Örneğin, ATI dizüstü bilgisayarım en fazla 1280x800 normal moda sahiptir, ancak aynı zamanda 1024x600'lük bir kaydırma modu da içerir!
Herkes 2'yi ayırt etmenin bir yolunu biliyor, böylece menümden panning modlarını reddedebilir miyim?
BTW, DEVMODEA'nın dmPanningWidth ve Height alanları kullanışsızdır, her zaman 0'dır. –
Panning modu ile ne demek istiyorsunuz? EnumDisplaySettingsEx, 1024x600 değerini döndürürse, bu, windows kullanıcısının video görüntüleme ayarlarını bu çözünürlüğe değiştirebileceği ve monitörün de bunu destekleyeceği anlamına gelir. –
@Chris: Bu, genellikle çok büyük olduğu için ekran tarafından desteklenmeyen bir çözünürlüğü ifade eder, ancak ekran kartının yalnızca bir bölümünü ekranda gösteren grafik kartı tarafından taklit edilir; Fareyi ekranın kenarına taşımak, masaüstünün diğer bölümlerini göstermek için "kaydırır". –