VB6 - جعل شكل شفاف
![](http://img.brin-designs.com/img/games/480/vb6-making-form-transparent.png)
ابدء
فيما يلي مثال موجز عن كيفية جعل نموذج شفافًا في 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
بعدها انا
نهاية الفرعية