2012-03-17 8 views
7

मैं यह जांचना चाहता हूं कि बाहरी एप्लिकेशन की विंडो में लंबवत या क्षैतिज स्क्रॉलबार विंडो के HWND (हैंडल) का उपयोग कर दिखाई दे रहा है, इस जानकारी को प्राप्त करने के लिए कोई WinApi फ़ंक्शन मौजूद है या नहीं? मैं वास्तव में GetScrollInfo फ़ंक्शन का प्रयास करता हूं लेकिन ऐसा लगता है कि स्क्रॉलबार की दृश्यता के बारे में जानकारी पुनर्प्राप्त नहीं करता है।मैं कैसे जांच सकता हूं कि विंडो में उसके HWND का उपयोग करके स्क्रॉलबार दिखाई दे रहे हैं या नहीं?

उत्तर

16

कैसे OBJID_HSCROLL साथ GetScrollBarInfo या OBJID_VSCROLL

तो idObject OBJID_CLIENT और खिड़की hwnd द्वारा निर्दिष्ट है एक प्रणाली स्क्रॉल पट्टी नियंत्रण नहीं है के बारे में, प्रणाली खिड़की स्क्रॉल पट्टी प्राप्त करने के लिए करने के लिए SBM_GETSCROLLBARINFO संदेश भेजता है जानकारी। यह GetScrollBarInfo को एक कस्टम नियंत्रण पर संचालित करने की अनुमति देता है जो स्क्रॉल बार की नकल करता है। यदि विंडो SBM_GETSCROLLBARINFO संदेश को संभाल नहीं पाती है, तो GetScrollBarInfo फ़ंक्शन विफल हो जाता है।

आप SCROLLBARINFO संरचना में rgstate परीक्षण कर सकते हैं, वहाँ वहाँ एक STATE_SYSTEM_INVISIBLE झंडा है।


एक अन्य संभावित रास्ता GetWindowLong(hWnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL) <> 0

+0

होनहार लग रहा है परीक्षण करने के लिए है, लेकिन Internet Explorer विंडो या Explorer.exe अनुप्रयोगों (विंडोज 7) – Salvador

+1

मुझे विश्वास है कि 'Explorer.exe' शामिल साथ काम नहीं करता 'GetWindowLong'' के साथ 'SysTreeView32' और' SysListView32' (दोनों मान्य 'WS_HSCROLL' या' WS_VSCROLL') को नियंत्रित करता है। मैं विंडो शैलियों की पुष्टि करने के लिए Spy ++ का उपयोग करता हूं। हालांकि 'GetScrollBarInfo' के साथ परीक्षण नहीं किया। – kobik

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

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