2008-10-03 14 views
8

क्या एक C++ करने के लिए Win32 कार्यक्रम लागू करने के लिए एक आसान तरीका है ...
- एक 800x600x24 असम्पीडित बिटमैप छवि
प्रदर्शित - सीमाओं के बिना एक खिड़की में (केवल एक चीज दिखाई दे रहा है छवि)
- कि दस सेकंड
के बाद बंद कर देता है - और बिटमैप तेज रास्ता

  • उपयोग CreateWindowEx लोड करने के लिए विंडो बनाने के लिए MFC

  • उत्तर

    1

    आप कर सकते हैं:

    • एक संवाद अपने संसाधन फ़ाइल में बनाएं
    • यह एक चित्र नियंत्रण
    • सेट चित्र नियंत्रण प्रकार बिटमैप को
    • बनाएं/संसाधन में अपने बिटमैप आयात शामिल है फ़ाइल को सेट करें और अपने संवाद में चित्र नियंत्रण में बिटमैप आईडी सेट करें
    • CreateDialogParam
    • एच का उपयोग करके विंडो बनाएं
    1
    • उपयोग LoadImage उपयोग नहीं करता।
    • विंडो प्रो में WM_PAINT को कैप्चर करें। बिटमैप पेंट करने के लिए बिटब्लैट का प्रयोग करें।
    2

    छप खिड़की के लिए एक वर्ग रजिस्टर और इन शैलियों का उपयोग कर एक खिड़की बनाने के लिए:

    • WS _ POPUPWINDOW: सुनिश्चित करें कि आपके खिड़की कोई शीर्षक/sysmenu है कर देगा
    • WS _ पूर्व _ सर्वोच्च: सब कुछ के ऊपर स्प्लैश स्क्रीन रखेंगे। ध्यान दें कि यह थोड़ा घुसपैठ कर रहा है। स्प्लैश विंडो को अपनी मुख्य विंडो के बच्चे को बनाना बेहतर हो सकता है। स्प्लैश स्क्रीन के नीचे किसी अन्य पॉपअप विंडो (यदि आप कोई भी बनाते हैं) रखने के लिए, आपको ज़ेड-ऑर्डर में हेरफेर करना पड़ सकता है।

    बिटमैप लोड करने के लिए CreateDIBSection का उपयोग करें। यह आसान होना चाहिए, क्योंकि बीएमपी फाइलें अनिवार्य रूप से डीआईबी संरचनाओं के डंप हैं। या केन ने क्या कहा और लोडइमेज का उपयोग करें।

    डब्लूएम _ पेंट या डब्ल्यूएम _ विंडो पर बिटमैप खींचने के लिए ERASEBKGND संदेश को संभालें।

    डब्लूएम _ पर 10 सेकंड का टाइमर सेट करें और जब विंडोज डब्लूएम _ टाइमर संदेश भेजता है, तो खिड़की स्वयं को नष्ट कर देती है।

    2

    यहां प्रमुख बिंदु layered window का उपयोग करना है।

    आप Win32 विज़ार्ड जेनरेट प्रोजेक्ट से शुरू कर सकते हैं और 0Wपर CreateWindow कॉल को बदल सकते हैं और WS_EX_LAYERED को विस्तारित विंडो शैली और WS_POPUP और WS_SYSMENU के संयोजन के रूप में विंडो शैली के रूप में सेट कर सकते हैं। जब आप अपना आवेदन लॉन्च करते हैं तो यह अदृश्य हो जाएगा। फिर आपको अपनी छवि को पेंट करने के लिए UpdateLayeredWindow का उपयोग करना चाहिए। यदि आप अल्फा परत के साथ पीएनजी छवि का उपयोग करना चाहते हैं तो आपको AlphaBlend फ़ंक्शन की भी आवश्यकता हो सकती है।

    आशा है कि इससे मदद मिलती है!

    1

    यह एक Win32 एपीआई पूछे जाने वाले प्रश्न

    पेशेवर Win32api मंच देखें खबर है: //194.177.96.26/comp.os.ms-windows.programmer.win32 जहां यह 20 साल के लिए सैकड़ों बार उत्तर दिया गया है। ।

    6

    अपने टाइमर घटना को पकड़ने के लिए 10 सेकंड (उपयोग SetTimer)

  • हैंडल WM_TIMER के लिए एक टाइमर सेट करने और नष्ट करने के लिए खिड़की (उपयोग DestroyWindow) क्रम में WM_INITDIALOG andle आप Windows के आधुनिक संस्करण लक्षित कर रहे हैं (विंडोज 2000) और ऊपर, आप UpdateLayeredWindow फ़ंक्शन का उपयोग किसी भी बिटमैप को प्रदर्शित करने के लिए कर सकते हैं (एक अल्फा चैनल वाला एक सहित, यदि वांछित हो)।

    I blogged a four-part series एक सी ++ Win32 ऐप लिखने के तरीके पर यह कैसे करता है। यदि आपको स्प्लैश स्क्रीन को बंद करने के लिए बिल्कुल दस सेकंड का इंतजार करना है (मुख्य विंडो तैयार होने तक इसके बजाय), आपको डेन क्रिस्टोलोवानु की एक टाइमर की सुझाई गई तकनीक का उपयोग करना होगा जो DestroyWindow को कॉल करता है।

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