2009-07-28 17 views
5

को अनदेखा करता है मैं एमएफसी में काम कर रहा हूं और मैं डेस्कटॉप का एक बीएमपी कैप्चर करने की कोशिश कर रहा हूं। मैं ऐसा करने के लिए GetDC (NULL) का उपयोग कर रहा हूं लेकिन ऐसा लगता है कि यह विशेष त्वचा वाली विंडो को अनदेखा करता है। ऐसा लगता है कि UpdateLayeredWindow के साथ खींची गई खिड़कियां अनदेखा करें। ऐसा व्यवहार केवल Vista x64 और XP पर हो रहा है। मैंने डेस्कटॉप WWND के साथ GetWindowDC को भी आजमाया है लेकिन परिणाम वही है।स्क्रीन कैप्चर कुछ विंडोज़

नोट्स: 1) प्रिंट स्क्रीन काम करता है। 2) Vista पर अगर मैं एरो सक्षम करता हूं तो स्क्रीन कैप्चर ठीक है, "विशेष" विंडो दिखाई देती हैं। तो Vista पर यह तब होता है जब एयरो अक्षम हो जाता है।

एक विचार?

धन्यवाद।

+0

यह कब्जा वीडियो –

+0

दिलचस्प फ्लॉप ... दबाने करता प्रिंट स्क्रीन ही कारगर साबित होंगे? – sharptooth

+0

@ उमेर अहमद: मुझे लगता है कि प्रिंट स्क्रीन स्वयं वीडियो कैप्चर नहीं करती –

उत्तर

6

जब BitBlt() कॉल, CAPTUREBLT ध्वज जोड़ने के लिए "कब्जा" स्तरित विंडोज़

मेरे लिए
+0

धन्यवाद। यह काम किया। – Nemok

+1

आईएमओ इस तरह के अस्पष्ट ज्ञान बिल्कुल इस साइट के बारे में है। धन्यवाद (भले ही मैं शायद इसका कभी भी उपयोग नहीं करूंगा :)) – Roel

+0

दिलचस्प बात यह है कि अगर मैं 'कैप्चरब्लैट' शामिल करता हूं, तो मुझे विंडो फ्रेम नहीं मिलते हैं, केवल ग्राहक क्षेत्र। एक पकड़ -22 लगता है। –

1

यह डेस्कटॉप संरचना के कारण हो सकता है। Vista में एरो डेस्कटॉप संरचना बंद करें और इसे फिर से प्रयास करें।

+0

एयरो बंद हो गया है, XP में भी यह नहीं है ... मैं यह संभव हो सकता हूं कि यह समस्या तब दिखाई दे जब एरो बंद हो। एरो के साथ परीक्षण करेंगे। – Nemok

+0

वास्तव में कुछ परीक्षण किए गए और ऐसा लगता है कि जब मैं Vista में एरो को अक्षम करता हूं तो "विशेष" विंडो दिखाई नहीं देती हैं। इसके साथ वे सक्षम करते हैं। XP में सक्षम करने के लिए कोई एयरो विकल्प नहीं है इसलिए समस्या हर बार होती है। कोई विचार? – Nemok

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