VB6 - جعل شكل شفاف

يمكن استخدام برنامج في VB6 أو Visual Basic 6 لجعل نموذج شفاف في VB6 . مطلوب بعض المعرفة بمفاهيم البرمجة واللغات مثل Visual Basic ، لكتابة البرامج في VB6. تعتبر المعرفة الأساسية للروتين الفرعي وحلقات if-else ووظائف Visual Basic ضرورية لكتابة البرامج في VB6. يمكن كتابة برنامج لجعل نموذج شفافًا في VB6 باستخدام وظائف VB6 مثل وظيفة SetLayeredWindowAttributes وعمليات البت ، في روتين فرعي المعرفة من قبل المستخدم. سيتم تسمية روتين فرعي المعرفة من قبل المستخدم بحدث نموذج ، وذلك عند تحميل النموذج.

ابدء

فيما يلي مثال موجز عن كيفية جعل نموذج شفافًا في Visual Basic.

ملاحظة: يجب تضمين لوحة ألوان حتى يعمل هذا.

في وحدة نمطية

 دالة Declare الخاصة GetWindowLong Lib "user32" Alias ​​"GetWindowLongA" (ByVal hWnd As Long، ByVal nIndex As Long) As Long

الدالة Declare الخاصة SetWindowLong Lib "user32" Alias ​​"SetWindowLongA" (ByVal hWnd As Long، ByVal nIndex As Long، ByVal dwNewLong As Long)

Set Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As، ByVal crKey As Long، ByVal bDefaut As Byte، ByVal dwFlags As Long)

كون الخاصة GWL_EXSTYLE طويلة = (-20)

كون الخاصة LWA_COLORKEY طويلة = & H1

كونستانس LWA_Defaut الخاص طويل = & H2

CONST الخاصة WS_EX_LAYERED طويل = & H80000

'

شفافية الوظيفة العامة (ByVal hWnd As Long ، اختياري ByVal Col As Long = vbBlack ، _

اختياري ByVal PcTransp كـ Byte = 255 ، اختياري ByVal TrMode باسم Boolean = صواب) كـ Boolean

العودة: صحيح إذا لم يكن هناك خطأ.

'hWnd: hWnd من النافذة لجعلها شفافة

Col: اللون ليصبح شفافاً إذا كان TrMode = False

'PcTransp: 0 255 255 >> 0 = transparent -: - 255 = غير شفاف

قاتمة DisplayStyle طالما

في الخطأ GoTo إنهاء

VoirStyle = GetWindowLong (hWnd، GWL_EXSTYLE)

إذا DisplayStyle (DisplayStyle أو WS_EX_LAYERED) ثم

DisplayStyle = (DisplayStyle أو WS_EX_LAYERED)

استدعاء SetWindowLong (hWnd ، GWL_EXSTYLE ، DisplayStyle)

إنهاء إذا

الشفافية = (SetLayeredWindowAttributes (hWnd ، Col ، PcTransp ، IIf (TrMode ، LWA_COLORKEY أو LWA_Defaut ، LWA_COLORKEY)) 0)

ىخرج:

إذا لم يكن Err.Number = 0 ثم Err.Clear

وظيفة النهاية

Active SubTransparency (M As Form ، d As Boolean ، F As Boolean ، _

T_Transparency كـ عدد صحيح ، لون اختياري طالما)

خافت B كما منطقية

إذا د واو ثم

يجعل اللون (هنا لون خلفية الشكل) شفافًا

على قيمة T_Transparency

B = الشفافية (M.hWnd ، Color ، T_Transparency ، False)

السيف د

يجعل الشكل ، بما في ذلك جميع المكونات ، شفافة

على قيمة T_Transparency

B = الشفافية (M.hWnd ، 0 ، T_Transparency ، True)

آخر

يعيد شكل مبهمة.

B = الشفافية (M.hWnd ، 255 ، صواب)

إنهاء إذا

نهاية الفرعية

كما هو مستخدم في النموذج

 نموذج فرعي خاص (تحميل)

خافت أنا كعدد صحيح

'مثال: كل شيء شفاف بنسبة 140/255

'ActiveTransparency Me، True، False، 140، Me.BackColor

'مثال: نموذج شفاف ، مكون مرئي بنسبة 140/255

'ActiveTransparency Me، True، True، 140، Me.BackColor

مثال عرض تدهور شفافية النموذج

ActiveTransparency Me ، صحيح ، خطأ ، 0

Me.Show

ل i = 0 إلى 255 الخطوة 3

ActiveTransparency عني ، صحيح ، خطأ ، أنا

Me.Refresh

بعدها انا

نهاية الفرعية

المقال السابق المقالة القادمة

نصائح الأعلى