मेरे पास एक संवाद है जो आकार बदलता है। इसमें एक कस्टम पृष्ठभूमि भी है जिसे मैं WM_ERASEBKGND कॉल (वर्तमान में FillSolidRect के लिए एक साधारण कॉल) के जवाब में पेंट करता हूं।विंडोज संवाद में WM_ERASEBKGND को संभालने के दौरान झिलमिलाहट से कैसे बचें
जब संवाद का आकार बदलता है, तो जबरदस्त झटके चल रहे हैं। झटके को कम करने और कम करने के लिए मैं सभी बाल खिड़कियों की गणना करता हूं और उन्हें क्लिपिंग क्षेत्र में जोड़ता हूं। ऐसा लगता है कि थोड़ा सा मदद करता है - अब जब वे पेंट करते हैं तो सभी बाल नियंत्रण में झिलमिलाहट स्पष्ट रूप से स्पष्ट होती है।
आकार बदलने के दौरान मैं संवाद झिलमिलाहट मुक्त कैसे कर सकता हूं? मुझे संदेह है कि डबल-बफरिंग को एक भाग खेलना चाहिए, लेकिन मुझे यकीन नहीं है कि बाल नियंत्रण के साथ एक संवाद के साथ ऐसा कैसे करें (सभी बच्चे को मालिक-ड्रा या उसके जैसा कुछ नियंत्रित किए बिना)।
मैं, नोट करना चाहिए कि मैं सी का उपयोग कर रहा ++ (नहीं नेट), और MFC हालांकि शुद्ध Win32 आधारित समाधान स्वागत कर रहे हैं :)
नोट: एक बात मैं कोशिश की, लेकिन जो नहीं काम नहीं किया (निश्चित क्यों) था:
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.FillSolidRect(rect, backgroundColor);
pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);