मूल रूप से है कि क्या Windows UI framework named User32 आप के लिए करता है। MSDN: Windows and Messages भी देखें।
इस ढांचे दे अपने आवेदन के लिए एक "संदेश पंप" जो विंडोज से संदेश प्राप्त करता लागू करके काम करता है। एक संदेश "माउस सिर्फ इस खिड़की पर ले जाया गया" या "माउस बटन दबाया गया था" हो सकता है। ध्यान दें कि एक "विंडो" एक रूप की भावना में सिर्फ "खिड़की" से अधिक है, एमएसडीएन लिंक को पढ़ना सुनिश्चित करें। एक बटन भी एक खिड़की है।
तो:
- एक माउस एक हार्डवेयर बस
- उपयोगकर्ता माउस
- हार्डवेयर संकेतों सॉफ्टवेयर संकेतों
- Windows के लिए अनुवाद करा ले जाता है से अधिक पीसी से जुड़ा है संदेशों
को इन संकेतों तब्दील
- विंडोज उपयुक्त आवेदन का संदेश पंप
- आवेदन करने के लिए इन संदेशों को डिस्पैच इन संदेशों के साथ जो कुछ भी
अब .NET के WinForms आपके लिए इस संदेश पंप को लपेटता है, और संदेशों को उन घटनाओं के रूप में उजागर करता है जिनकी आप सदस्यता ले सकते हैं। आप कार्रवाई में इसे देख सकते हैं overriding WndProc()
on your control of coice द्वारा:
protected override void WndProc(ref Message m)
{
Console.WriteLine(m);
base.WndProc(ref m);
}
में अधिक गहराई (MSDN: About Messages and Message Queues से), एक Windows संदेश एक खिड़की के लिए (या "नियंत्रण" WinForms संदर्भ में) एक हैंडल का उपयोग जुड़ा हुआ है। यह संभाल अद्वितीय रूप से नियंत्रण की पहचान करता है।
इस तरह WinForms जानता है कि mouse message हैंडल एक्स के साथ उस हैंडल के साथ नियंत्रण वाई के लिए है, इसलिए यह उस संदेश को प्राप्त करने पर माउसक्लिक या संबंधित ईवेंट उठाता है।
उत्तर के लिए धन्यवाद। क्या विंडोज़ में उन सभी संदेश सिस्टम सी भाषा या अन्य भाषा में लिखे गए हैं? – Lyrk
विंडोज संदेश एक भाषा-अज्ञेयवादी, स्मृति स्मृति में हैं। आप अपनी प्रोग्रामिंग भाषा में संदेश प्राप्त करने के लिए User32 लाइब्रेरी को कॉल करते हैं। – CodeCaster