سؤال

أحتاج إلى إنشاء عنصر تحكم سريع ومتسخ في Visual Basic 2005 Express، حيث يتم زيادة/إنقاص قيمته عن طريق "إمساكه" بالماوس وتحريك المؤشر لأعلى/لأسفل.نظرًا لأن المقبض نفسه لا يتحرك، فأنا بحاجة إلى متابعة حركة الماوس خارج مستطيل عنصر التحكم.

أنا استخدم أ Label مع ال ImageList لتنفيذ ذلك (لدي قائمة مكونة من 127 صورة نقطية تمثل المقبض في مواضع مختلفة).

ما هي الأحداث التي يجب أن أتفاعل معها؟

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

المحلول

أنت بحاجة إلى عنصر التحكم للتعامل مع ثلاثة أحداث:الماوس لأسفل، تحريك الماوس، والفأرة لأعلى.في حدث Mouse Down، ستحتاج إلى التقاط الماوس.وهذا يعني أنه يتم إرسال رسائل الماوس إلى عنصر التحكم الذي لديه الالتقاط.في حدث تحريك الماوس، إذا تم التقاط الإدخال، فقم بتحديث الصورة المعروضة اعتمادًا على مقدار تحريك الماوس.في حدث رفع الماوس، قم بتحرير الالتقاط إذا تم التقاط الإدخال.

يقترح jjnguy المنطقي أنه غير ضروري لأن خاصية الالتقاط لعنصر التحكم قابلة للقراءة لذا من الممكن تحديد ما إذا كان قد تم تعيين الالتقاط أم لا.

نصائح أخرى

ستكون مشكلتك هي تحديد الصورة النقطية التي يجب عليك عرضها بناءً على الإحداثيات التي يبلغها الماوس في حدث mouse_move.ستحتاج إلى إجراء بعض السحر لتحويل الإحداثيات والتوصل إلى قيمة يمكنك استخدامها لاختيار الصورة الصحيحة.

لا يبدو الأمر معقدًا للغاية، فقط القليل من التجربة والخطأ في الرياضيات.لقد أظهر لك Skizz بالفعل كيفية التقاط الأحداث.

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