تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لعمل فورم شفاف باستخدام فيجوال بيسك
#1
كاتب الموضوع : AhmedEssawy

يقوم هذا الكود برسم فورم شفاف ، ويتم اعادة استدعاء الدالة مع كل حدث Resize .

منقول من المنتدى السابق ...

لذا نبدا باضافة هذا الأمر في التصريح General :


كود :
Option Explicit
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As _
Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal _
nCombineMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As _
Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Public Sub TransparentForm(frm As Form)
frm.ScaleMode = vbPixels
Const RGN_DIFF = 4
Const RGN_OR = 2
Dim outer_rgn As Long
Dim inner_rgn As Long
Dim wid As Single
Dim hgt As Single
Dim border_width As Single
Dim title_height As Single
Dim ctl_left As Single
Dim ctl_top As Single
Dim ctl_right As Single
Dim ctl_bottom As Single
Dim control_rgn As Long
Dim combined_rgn As Long
Dim ctl As Control
If frm.WindowState = vbMinimized Then Exit Sub
wid = frm.ScaleX(frm.Width, vbTwips, vbPixels)
hgt = frm.ScaleY(frm.Height, vbTwips, vbPixels)
outer_rgn = CreateRectRgn(0, 0, wid, hgt)
border_width = (wid - frm.ScaleWidth) / 2
title_height = hgt - border_width - frm.ScaleHeight
inner_rgn = CreateRectRgn(border_width, title_height, wid - border_width, hgt - border_width)
combined_rgn = CreateRectRgn(0, 0, 0, 0)
CombineRgn combined_rgn, outer_rgn, inner_rgn, RGN_DIFF
For Each ctl In frm.Controls
If ctl.Container Is frm Then
ctl_left = frm.ScaleX(ctl.Left, frm.ScaleMode, vbPixels) _
+ border_width
ctl_top = frm.ScaleX(ctl.Top, frm.ScaleMode, vbPixels) + title_height
ctl_right = frm.ScaleX(ctl.Width, frm.ScaleMode, vbPixels) + ctl_left
ctl_bottom = frm.ScaleX(ctl.Height, frm.ScaleMode, vbPixels) + ctl_top
control_rgn = CreateRectRgn(ctl_left, ctl_top, ctl_right, ctl_bottom)
CombineRgn combined_rgn, combined_rgn, control_rgn, RGN_OR
End If
Next ctl
SetWindowRgn frm.hWnd, combined_rgn, True
End Sub
نكتب هذا الكود فى الفورم :


كود :
Private Sub Form_Resize()
TransparentForm Me
End Sub
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  احترف قواعد البيانات فى فيجوال بيسك 6 derbaliammar 2 6,213 29-04-20, 05:20 AM
آخر رد: Amir_Alzubidy
  تفعيل caps lock عند فتح فورم معين(((فيجوال بيسك 6)))) سانسيفا 8 6,483 26-08-13, 05:06 PM
آخر رد: مهند إلكترو
  ارسال ايميل باستخدام Microsoft Outlook RaggiTech 0 3,132 17-10-12, 02:39 PM
آخر رد: RaggiTech
  هام جداً للمبتدئين - مجموعة من الأكواد الأساسية في فيجوال بيسك RaggiTech 0 3,862 17-10-12, 01:16 AM
آخر رد: RaggiTech
  معرفة اسم الجهاز باستخدام Active Directory ومعلومات أخرى مفيدة RaggiTech 0 1,938 17-10-12, 01:05 AM
آخر رد: RaggiTech
  لمعرفة لو كان التحديد باستخدام Tab او باستخدام الماوس RaggiTech 0 1,943 17-10-12, 01:01 AM
آخر رد: RaggiTech
  لعمل List باسماء اتصالات Dail-up التي لديك RaggiTech 0 1,705 17-10-12, 12:57 AM
آخر رد: RaggiTech
  لعمل Enable و Disable لزر X في الفورم RaggiTech 0 1,954 17-10-12, 12:57 AM
آخر رد: RaggiTech
  كيفية تشغيل فيديو باستخدام Api ومكتبة Mmsystem.dll RaggiTech 0 2,035 17-10-12, 12:52 AM
آخر رد: RaggiTech
  كيفية اغلاق أي برنامج من خلال الفيجوال بيسك RaggiTech 0 3,692 17-10-12, 12:51 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم