ما فائدة ATOM التي يتم إرجاعها بواسطة وظيفة RegisterClassEx؟

StackOverflow https://stackoverflow.com/questions/4884910

سؤال

كنت أقرأ وثائق سجلClassEx وظيفة ووجدت أن نوع الإرجاع للوظيفة هو ATOM.

ATOM RegisterClassEx(CONST WNDCLASSEX *lpwcx);

أثناء إنشاء نافذة باستخدام CreateWindowEx يمكننا إما تمرير اسم الفئة أو فئة ATOM في lpClassName.

فهل هناك أي أهمية لتمرير ATOM على اسم الفئة؟أم أنها مجرد وسيلة بديلة؟

شكرًا.

هل كانت مفيدة؟

المحلول

ATOM هو اسم مستعار لسلسلة، مثل فهرس لمصفوفة نظام من السلاسل.في سياق فئات النوافذ، يكون هذا الاسم مستعارًا لاسم الفئة.

لذا، فهي مجرد طريقة مختلفة للقيام بنفس الشيء، ولكن من الناحية النظرية هذه أكثر كفاءة.

حيث أعتقد أن ATOMs أكثر منطقية للاستخدام GetProp / SetProp, ، حيث قد تبحث عن هذه السلسلة لكل رسالة Windows تتم معالجتها.ربما يمكنك الحصول على بعض الأداء باستخدام ATOM؛على أية حال، فهو سهل الاستخدام لدرجة أنك قد تفعل ذلك أيضًا.

ومن المثير للاهتمام أن جداول ATOMs موجودة على مستوى النظام أيضًا، لذلك إذا سجلت عمليتان فئة نافذة بنفس الاسم، فسوف تتلقى نفس قيمة ATOM، على الرغم من أن معلومات الفئة ستكون مختلفة.

نصائح أخرى

إنها مجرد طريقة بديلة.في نظام التشغيل Windows 3 ، حيث تم تقديم واجهة برمجة التطبيقات (API) (إن لم يكن Windows 2.x حتى) ، كانت سلسلة المقارنات عمليات بطيئة.سمح ATOM بإنشاء النوافذ بشكل متكرر إلى هذا الحد بشكل أسرع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top