سؤال

أنا أستخدم VB6 PictureBox في عنصر تحكم المستخدم الخاص بي.لقد قمت بتعيين صورة PictureBox، وقمت بتعيين BorderStyle إلى 0، وقمت بتعيين BackColor إلى BackColor الخاص بعنصر تحكم المستخدم.الفكرة هي أنني أريد أيقونة "عائمة".ومع ذلك، أريد أن يظهر هذا الرمز قابلاً للنقر عليه عند تحريك الماوس فوقه.

سؤالين:

  1. ما هي الأحداث التي أستخدمها؟يبدو أن MouseMove هو الأقرب إلى حدث "MouseOver".هل هناك أي بدائل أنظف؟

  2. كيف يجب أن أغير النمط؟لقد جربت بعض الأشياء، لكن لم يبدو أي منها صحيحًا تمامًا.

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

المحلول

  1. MouseMove هو الحدث الصحيح في VB6.سيتعين عليك القيام ببعض الأعمال لتكتشف يدويًا متى يغادر الماوس منطقة العميل بشكل نظيف.(تجاربي في هذا العالم، منذ سنوات عديدة مضت، وجدت دائمًا أن تنفيذ هذا السلوك أمر صعب.)

  2. لتغيير النمط، أوصي باستخدام GDI من أجل:(أ) إزاحة الصورة بمقدار بكسل واحد للأعلى ولليسار؛(ب) ارسم خط بكسل واحدًا في ButtonHighlightColor على طول الحواف العلوية واليسرى؛و (ج) ارسم خط بكسل واحدًا في ButtonShadowColor على طول الحواف السفلية واليمنى.هذا أصعب مما يبدو، خاصة في VB6، لذا في النهاية أوصي...

التي تنظر إليها عناصر التحكم في شريط أدوات vbAccelerator.إنهم مجانيون ، وربما سيحصلون عليك أكثر من المكان الذي تريد أن تكون فيه.(ونعم، إنها VB "الكلاسيكية" - أي VB6.)

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