मैं टेक्स्ट फ़ील्ड में फ़ोकस करते समय अधिसूचना स्थापित करने के लिए समाधान के साथ आने का प्रयास कर रहा हूं। दिमाग में अंतिम लक्ष्य स्क्रीन कीबोर्ड पर मोबाइल उपकरणों पर दिखाई देने वाली कार्यक्षमता के प्रकार को फिर से बनाना है।विंडोजएच - ध्यान जब टेक्स्ट इनपुट में प्रवेश करता है
अब तक SetWinEventHook
EVENT_OBJECT_FOCUS
और GetGUIThreadInfo
GUI_CARETBLINKING
के साथ खोज रहा है।
:
EVENT_OBJECT_FOCUS
एक वस्तु पर, कीबोर्ड प्राप्त हुआ है। सिस्टम निम्न उपयोगकर्ता इंटरफ़ेस तत्वों के लिए भेजता है: सूची-दृश्य नियंत्रण, मेनू बार, पॉप-अप मेनू, स्विच विंडो, टैब नियंत्रण, वृक्ष दृश्य नियंत्रण, और विंडो ऑब्जेक्ट।
GUI_CARETBLINKING देखभाल का ब्लिंक स्थिति। यह बिट सेट है यदि कैरेट दिखाई दे रहा है।
इन तरीकों मैं इस समाधान के साथ आ गया है का उपयोग करना:
void TextInputHelper::setupEventHook(FREContext iCtx)
{
ctx = iCtx;
CoInitialize(NULL);
evHook = SetWinEventHook(EVENT_OBJECT_FOCUS, EVENT_OBJECT_END, NULL,
handleEventObjectFocus, 0, 0,
WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
}
void CALLBACK handleEventObjectFocus(HWINEVENTHOOK hook, DWORD evt, HWND hwnd,
LONG idObj, LONG idChild, DWORD thread, DWORD time)
{
GUITHREADINFO threadInfo;
threadInfo.cbSize = sizeof(GUITHREADINFO);
BOOL result = GetGUIThreadInfo(thread, &threadInfo);
if(threadInfo.flags & GUI_CARETBLINKING)
{
//text field focus
}
}
यह कुछ मामलों लेकिन इसकी निश्चित रूप से विश्वसनीय नहीं में काम करने के लिए प्रतीत होता है। नोटपैड जैसे आईई जैसे प्रोग्राम ठीक काम करते हैं लेकिन फ़ायरफ़ॉक्स जैसे अन्य लोग नहीं करते हैं। यह वेबसाइटों पर टेक्स्ट फ़ील्ड जैसी चीज़ों के लिए भी काम नहीं करेगा क्योंकि यह handleEventObjectFocus
जैसा नहीं दिखता है।
क्या कोई इस समस्या से निपटने के लिए किसी अन्य तरीके से जानता है? मैं चारों ओर खोज कर रहा हूं और ऐसा लगता है कि मैं एक्सेसिबिलिटी एपीआई में कुछ ढूंढ रहा हूं लेकिन मैं इस पर ज्यादा खोदने में सक्षम नहीं हूं।
धन्यवाद!
संपादित
स्पष्ट करने के लिए, मैं जब फ़ोकस किसी भी पाठ फ़ील्ड में प्रवेश करती है एक सूचना प्राप्त करने के लिए देख रहा हूँ। यह एप्लिकेशन एक Win32 डीएल है और कभी भी अपने आप पर ध्यान केंद्रित नहीं करेगा।
आपके द्वारा लागू समाधान जितना विश्वसनीय हो उतना विश्वसनीय है। यह विंडोज नियंत्रण के लिए अच्छा काम करता है, लेकिन किसी भी कस्टम नियंत्रण कार्यान्वयन के लिए नहीं होगा। फ़ायरफ़ॉक्स, उदाहरण के लिए, अपने जीयूआई के लिए क्यूटी को नियोजित करता है जो विंडोज नियंत्रणों का बिल्कुल उपयोग नहीं करता है, बल्कि सभी तर्कों को लागू करता है और खुद को प्रस्तुत करता है। – IInspectable