في عملية تطوير البرامج، من أجل تحسين درجة تسويق البرامج، نشعر أن جمال الواجهة يعد عاملاً مهمًا في نجاح البرنامج، وقد قمنا بدراسة بعض البرامج التجارية الناجحة بعناية يمكن أن أرى نعم، يمكن أن تعرض خلفية نافذة البرنامج أنماطًا جميلة جدًا وثلاثية الأبعاد. عند استخدام Visual Basic 3.0 أو 4.0 لتصميم النموذج، إذا اتبعت الوظائف التي يوفرها النظام فقط، فيمكنك اختيار لون واحد فقط من عدد محدود من الألوان أو استخدام برنامج لرسم بعض الخطوط البسيطة. إذا كنت ترغب في تحقيق نمط نسيج ذو مظهر قوي ثلاثي الأبعاد، فيمكنك عمومًا استخدام سمة الصورة الخاصة بالنموذج فقط لاستدعاء ملف الصورة النقطية. هناك العديد من أوجه القصور في استخدام هذه الطريقة، أحدها هو حجم النموذج يقتصر على حجم الصورة النقطية، ومن الصعب ضبطها، ولا تتمتع بالتنوع والمرونة؛ والثاني هو مضيعة للموارد، لأن النمط هو في الأساس نمط متكرر، ويستخدم صورة نقطية بنفس الحجم النموذج مضيعة.
يقدم ما يلي طريقة لتنفيذ أنماط خلفية النموذج. قم بإنشاء عنصر تحكم شبكة في النموذج، وقم بتعيين صفوف الشبكة لتكون غير مرئية، وقم بإزالة الصفوف والأعمدة الثابتة، واستخدم برنامجًا لجعل عنصر تحكم الشبكة بنفس حجم النموذج، وقم بتغييره مع تغير حجم النموذج. ثم قم بتصميم نمط لتكوين ملف صورة نقطية BMP (يستخدم البرنامج الموجود في هذه المقالة الملف Pict1.bmp)، أو اعتراض نمط من صور أخرى. يمكنك أيضًا استخدام النموذج الذي يوفره نظام Windows (مثل c:windowsTiles. bmp) للاتصال ببرنامج التحكم بالصورة Picture Control. قم بتعيين كل وحدة من الشبكة لتكون بنفس حجم النموذج، بحيث يغطي عدد الوحدات خلفية النموذج بالكامل، ثم قم بعرض النموذج في جميع الوحدات. يتم تحقيق العملية المذكورة أعلاه من خلال الإجراء الفرعي Backpict()، بغض النظر عن حجم النموذج أو حجم النافذة.
يمكن للبرنامج ضبط حجم التحكم في الشبكة وحجم وحدة الشبكة وعدد الوحدات تلقائيًا. تم تصحيح أخطاء البرنامج بنجاح على VisualBasic4.0.
1. قم بإنشاء نموذج جديد Form1 بالخصائص التالية:
التسمية التوضيحية = "تحقيق أنماط الخلفية"
Borderstyle=3 (لا يوجد أزرار الحد الأقصى والحد الأدنى)
2. قم بإنشاء شبكة تحكم Grid1. سيتم تحديد موضعها وحجمها في البرنامج (بنفس حجم Form1)، وخصائصها هي:
Enabled=False (لن يقع التركيز على عنصر تحكم الشبكة Grid1)
نمط التعبئة = 1 (تغيير خصائص النص لجميع الخلايا)
Fixedcols=0 (لا توجد صفوف ثابتة)
الصفوف الثابتة=0 (لا توجد أعمدة ثابتة)
خطوط الشبكة=خطأ (خطوط الشبكة غير مرئية)،
مرئي = صحيح
3. قم بإنشاء عنصر تحكم الصورة Picture1. عند تشغيل البرنامج، ضع النمط الأساسي لنمط الخلفية فيه، وستكون الخصائص
مرئي = خطأ (غير مرئي)
الحجم التلقائي = صحيح (ضبط الحجم تلقائيًا)
4. قم بإضافة Sheridan3DControls إلى عنصر التحكم، وحدد زر الأمر ثلاثي الأبعاد SSCommand، وقم بإنشاء اثنين
زر
SSCommand1.Caption = "خروج"
SSCommand2.Caption="تغيير الخلفية" (يوضح أنماط خلفية مختلفة)
يمكن أن تستدعي الصورة الخاصة بها نفس النمط أو نمطًا مختلفًا مثل الخلفية إذا كنت تستخدم زر التحكم العادي
يمكن أيضًا استخدام الأمر، لكن زر الأمر ليس له نمط خلفية.
5. قم بإنشاء نمط خلفية يشكل روتينًا فرعيًا:
DimpictfileAsString`اسم ملف الصورة النقطية
DimFILEPATHAsString`مسار الملف
صورة خلفية فرعية (ملف الصورة)
الصورة1.ScaleMode=3
Form1.ScaleMode=3
الصورة 1. الصورة = تحميل الصورة (ملف الصورة)
`يغطي التحكم في الشبكة خلفية النموذج بالكامل
الشبكة1.الأعلى=-1
الشبكة1.اليسار=-1
Grid1.Width=Width
Grid1.Height=Height
Grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) 1
Grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) 1
`جميع أحجام الخلايا تساوي حجم النمط الأساسي
ForI=0Togrid1.Cols-1
Forj=0Togrid1.Rows-1
Grid1.ColWidth(I)=picture1.ScaleWidth*15
Grid1.RowHeight(j)=picture1.ScaleHeight*15
التاليج
التاليأنا
`حدد كافة الخلايا
Grid1.SelStartCol=0
Grid1.SelStartRow=0
Grid1.SelEndCol=grid1.Cols-1
Grid1.SelEndRow=grid1.Rows-1
Grid1.Picture=Picture1.Picture
EndSub
6. نموذج البرنامج الرئيسي
PRivateSubForm_Load()
PrivateSubForm_Load()
`احصل على اسم مسار البرنامج قيد التشغيل، مع وجود شرطة مائلة عكسية بعد اسم المسار
IfRight(App.Path,1)<>""ثم
filePath=App.Path&""
آخر
filePath=App.Path
EndIf
`يعرض النموذج في البداية خلفية مكونة من النمط الأساسي Tiles.bmp
pictfile = "c:windowsTiles.bmp"
الصورة الخلفية (ملف الصورة)
EndSub
7. زر أمر الخروج من البرنامج
PrivateSubSSCommand1_Click()
نهاية
EndSub
8. إظهار أنماط التظليل المختلفة
PrivateSubSSCommand2_Click()
`يظهر نمطان للخلفية بالتناوب
Ifpictfile=filePath&"Pict1.bmp"ثم
pictfile = "c:windowsTiles.bmp"
آخر
pictfile=filePath&"Pict1.bmp"
EndIf
الصورة الخلفية (ملف الصورة)
EndSub->