10

मैं एक पूर्ण स्क्रीन 3 डी गेम लिख रहा हूं और मैंने एक मेनू बनाया है जिसमें उपयोगकर्ता अपनी हार्डवेयर क्षमता से मेल खाने के लिए स्क्रीन रिज़ॉल्यूशन का चयन कर सकता है।कोड में पैनिंग और सामान्य स्क्रीन मोड के बीच अंतर - विंडोज

मैं गणना कर रहा हूँ सब EnumDisplaySettingsExA इस तरह के साथ उपलब्ध स्क्रीन मोड:

std::vector<DEVMODEA> modes; 
DEVMODEA modeInfo; 
int modeNum = -1; 
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) { 
    if (modeInfo.dmBitsPerPel < 16) continue; 
    modes.push_back(modeInfo); 
} 

समस्या है, मैं पैनिंग-मोड रूप में अच्छी तरह हो रही है! मैं अंतर नहीं कर सकता कि कौन सा है; उदाहरण के लिए मेरे अति लैपटॉप का अधिकतम सामान्य मोड 1280x800 है, लेकिन इसमें 1024x600 का पैनिंग-मोड भी शामिल है!

कोई भी 2 के बीच अंतर करने के तरीके के बारे में जानता है, इसलिए मैं अपने मेनू से पैनिंग-मोड को अस्वीकार कर सकता हूं?

+2

बीटीडब्ल्यू, डीएमपीनिंगविड्थ और डीवीएमओडीईए के ऊपरी क्षेत्र बेकार हैं, वे हमेशा 0 –

+0

पॅनिंग-मोड से क्या मतलब है? जब EnumDisplaySettingsEx 1024x600 देता है, इसका मतलब है कि विंडोज उपयोगकर्ता वीडियो रिज़ॉल्यूशन सेटिंग्स को उस रिज़ॉल्यूशन में बदल सकता है, और मॉनिटर शायद इसका भी समर्थन करेगा। –

+2

@ क्रिस: यह एक संकल्प को संदर्भित करता है जो मॉनीटर द्वारा समर्थित नहीं है, आमतौर पर क्योंकि यह बहुत बड़ा है, लेकिन एक समय में स्क्रीन पर डेस्कटॉप का केवल एक हिस्सा प्रदर्शित करके ग्राफिक्स कार्ड द्वारा नकल किया जाता है; स्क्रीन के किनारे पर माउस को ले जाने से डेस्कटॉप के अन्य हिस्सों को दिखाने के लिए "पैन" किया जाएगा। –

उत्तर

1

@ मार्टिन: मैं ओपी का अनुमान लगा रहा हूं बस आरएस को गलत क्रम में डाल दें।

क्या आप देख रहे हैं this link है?

ऐसा लगता है कि विंडोज़ में स्क्रीन के पिक्सेल आयामों को प्राप्त करने का यह सही तरीका है।

+0

यह एक .NET फ़ंक्शन है। C++ के बराबर नहीं मिल सकता ... –

+0

@ बिल कोट्सियास - यह फ़ंक्शन अंतर्निहित विंडोज का उपयोग करता है जैसे EnumDisplayMonitors, GetMonitorInfo या MonitorForWindow, लेकिन मुझे यकीन नहीं है कि यह आपकी मदद करेगा। –

संबंधित मुद्दे