क्या GDI + में उपयोगकर्ता नियंत्रण में स्क्रॉलिंग की एक पसंदीदा, तेज़ विधि है?एक जीडीआई + के साथ वैध रूप से कैसे स्क्रॉल कर सकता है?
मैंने एक ऐसा नियंत्रण बनाया है जो ग्राफिक रूप से एक क्षैतिज स्क्रॉल करने योग्य डेटा प्लॉट प्रस्तुत करता है।
वर्तमान में, मेरा नियंत्रण डेटा में ऑफसेट में क्षैतिज स्क्रॉल बार की स्थिति को परिवर्तित करके संचालित होता है। नियंत्रण तब उस डेटा को प्रस्तुत करता है जो इस प्रारंभिक बिंदु और नियंत्रण की चौड़ाई के आधार पर गणना की गई अंतिम बिंदु के बीच मौजूद होता है।
यह विधि काम करती है, लेकिन बहुत धीमी है। मैं प्रत्येक स्क्रॉल घटना पर पूरी नियंत्रण सतह को मैन्युअल रूप से दोबारा नहीं लेना चाहता हूं। इसके बजाय, मैं ग्राफिकल डेटा की संपूर्णता (या कुछ भाग) को ऑफस्क्रीन सतह पर चित्रित करके नियंत्रण शुरू करना चाहता हूं, और उसके बाद ऑफसेट पर शुरू होने वाले पूर्व-प्रस्तुत ग्राफ़िक डेटा को पढ़ने के कारण नियंत्रण सतह को वर्चुअल रूप से स्क्रॉल करना चाहता हूं क्षैतिज स्क्रॉल बार की स्थिति से गणना की।
क्या बिटबल्ट ऐसा करने का एकमात्र तरीका है? क्या मुझे वास्तव में एक सतह से दूसरे सतह पर ग्राफिक्स डेटा मैन्युअल रूप से कॉपी करना है? क्या मैं सिर्फ पेंट इवेंट नहीं ले सकता हूं और इसे ऑफस्क्रीन सतह से डेटा को पढ़ने के कारण इसे पढ़ सकता हूं? इस तरह, कॉपी और प्रस्तुत करने की क्रिया एक ही है।
या, क्या मुझे सीधे पैनल नियंत्रण में पेंट की तरह कुछ होकी चाहिए और फिर सचमुच पैनल को बाएं से दाएं स्क्रॉल करें?
वर्गीकरण: अनिवार्य रूप से, मैं पूर्व-प्रस्तुत डेटा को स्क्रॉल करने का सही तरीका जानना चाहता हूं। एक नियंत्रण में ग्राफिकल डेटा स्क्रॉल कैसे करता है? को पूर्व-प्रस्तुत ग्राफिक को फिर से निकालना सही विकल्प नहीं है।
कितना बड़ा पूरे स्क्रॉल साजिश की सतह मिल सकता है? क्या आप हमेशा सभी बिंदुओं को आकर्षित करते हैं या जिन्हें आप जानते हैं वे दिखाई दे रहे हैं? –
मैं केवल उन बिंदुओं को आकर्षित करता हूं जो दृश्य क्षेत्र के भीतर हैं। साजिश का पूरा क्षेत्र नियंत्रण की चौड़ाई 200 गुना तक हो सकता है। मैं नियंत्रण सतह के आकार के बारे में एक ग्राफिक बफर बनाना चाहता हूं और सेट सेट खंड में आवश्यक डेटा को पढ़कर बफर को फिर से भरना चाहता हूं। – James