2011-05-29 9 views
5

मैं एक सी # डब्ल्यूपीएफ एप्लीकेशन बना रहा हूं, और हर बार जब उपयोगकर्ता मेरे आवेदन के बाहर कहीं क्लिक करता है, तो मैं विंडो के TITLE के साथ एक अलर्ट प्रदर्शित करना चाहता हूं। मेरे आवेदन के बाहर क्लिक का पता लगाने के लिए, मैं LowLevelMouseProc का उपयोग कर रहा हूं। लेकिन मैं उस विंडो को कैसे प्राप्त करूं जो सी # में केंद्रित है?सी # फोकस के साथ खिड़की प्राप्त करना?

अग्रिम धन्यवाद!

संपादित करें: मुझे पता है कि यह मेरे मूल प्रश्न से संबंधित नहीं है, लेकिन मैं नियंत्रण पर ध्यान केंद्रित कैसे करूं?

+0

दूसरे प्रश्न पर: आपको शायद एक फ़ंक्शन की आवश्यकता है ['GetFocus()'] (http://msdn.microsoft.com/en-us/library/ms646294%28v=vs.85%29.aspx) - उस एमएसडीएन पेज पर टिप्पणियां पढ़ें –

+0

क्या आप वाकई यह जानना चाहते हैं कि उपयोगकर्ता आपके ऐप के बाहर * कब * क्लिक करता है? उपयोगकर्ता विंडोज़ स्विच करने के लिए कीबोर्ड का भी उपयोग कर सकते हैं। आप WM_ACTIVATE संदेश को देखने का प्रयास कर सकते हैं: http://stackoverflow.com/questions/813356/determine-where-activation-is-going-when-a-form-is-deactivated (Winforms, लेकिन एक ही मूल विचार के लिए काम करता है WPF के साथ-साथ जब आप WPF विंडो से HWNDs प्राप्त करते हैं) –

उत्तर

3

फोकस के साथ नियंत्रण प्राप्त करने के तरीके पर अपने अनुवर्ती प्रश्न के संबंध में, आप GetGUIThreadInfo का उपयोग कर केंद्रित नियंत्रण के HWND प्राप्त कर सकते हैं। ध्यान दें कि आप उस थ्रेड को पास करते हैं जो विदेशी विंडो का मालिक है, न कि विदेशी विंडो (फ़ंक्शन डॉक्स आपको बताती है कि विदेशी विंडो हैंडल से थ्रेड आईडी कैसे प्राप्त करें)। केंद्रित एचडब्ल्यूएनडी GUITHREADINFO.hwndFocus सदस्य के माध्यम से वापस आ गया है।

ध्यान दें कि सामान्य रूप से, आप एचडब्ल्यूएनडी से बेहतर नहीं कर सकते हैं, क्योंकि अग्रभूमि विंडो एक .NET अनुप्रयोग नहीं है। उदाहरण के लिए, यदि विदेशी विंडो एक डब्ल्यूपीएफ विंडो है, तो यह आपको बताएगा कि उस विंडो के भीतर कौन सा डब्ल्यूपीएफ नियंत्रण केंद्रित है, क्योंकि डब्ल्यूपीएफ नियंत्रण में एचडब्ल्यूएनडी नहीं है।

6

GetForegroundWindow इसे करना चाहिए।

+0

धन्यवाद, यह काम करता है! मुझे पता है कि यह मेरे मूल प्रश्न से संबंधित नहीं है, लेकिन मैं नियंत्रण को कैसे केंद्रित करूंगा, साथ ही साथ? – mattsven