السادة و السيدات الكرام
سلام الله عليكم ورحمة منه وبركات
اعلم ان هذا الموضوع قد تم تداوله و البحث فيه اكثر من مرة
وقد قمت بتجربة اكثر من مثال وهي تعمل لكن ينقصها انه عند تطبيق الكود يصبح النموذج بما حوى شفاف اي ان الخلفية والازرار والنصوص تصبح كذلك شفافة
وهذا ليس ما اريده اريد ان تكون الخلفية فقط شفافة بينما الازرار والنصوص واضحة دون ان تتأثر بالكود او الشفافية
في طور بحثي لهذا الموضوع وجدت هذه الدالة وحسب ما فهمت انها تعمل اي انها تجعل خلفية النموذج شفافة دون ان تأثر على غيرها
اخوكم الفقير الى ربه يفتقر لبعض الخبرات في تطبيق الاكواد واستدعائها فلجئنا الى الله ثم اليكم طلبا للعون و المساعدة ... لا اطيل اليكم الدالة والمثال في المرفقات
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_COLORKEY = 1
Private Const LWA_ALPHA = 2
Private Const WS_EX_LAYERED = &H80000
Private Declare Function apiGetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function apiSetLayeredWindowAttributes Lib "user32" Alias "SetLayeredWindowAttributes" ( _
ByVal hwnd As Long, _
ByVal Color As Long, _
ByVal AlphaPercent As Byte, _
ByVal Alpha As Long) As Boolean
Private Declare Function apiSetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
' Setting OpacityPercent to zero makes the form fully transparent.
' Setting OpacityPercent to 100 makes the form fully opaque.
' This only has an affect on forms whose PopUp property is True.
Public Sub SetOpacity(frm As Access.Form, OpacityPercent As Byte)
' Ensure frm is a PopUp form. Raise an error if it is not.
If Not frm.Popup Then
err.Raise 5, , "Invalid argument." & vbCrLf & Namespace$ & " cannot SetOpacity on form " & frm.Name & ". PopUp form required."
Else
' Force OpacityPercent between 0 and 100.
If OpacityPercent > 100 Then OpacityPercent = 100
If OpacityPercent < 0 Then OpacityPercent = 0
' Convert supplied percentage value to one ranging between 0 and 255 for apiSetLayeredWindowAttributes
Dim iAlpha As Integer
iAlpha = (OpacityPercent / 100) * 255
' Get forms current extended attributes
Dim attrib As Long
attrib = apiGetWindowLong(frm.hwnd, GWL_EXSTYLE)
' Set form to have extended layered attribute
apiSetWindowLong frm.hwnd, GWL_EXSTYLE, attrib Or WS_EX_LAYERED
' Set opacity
apiSetLayeredWindowAttributes frm.hwnd, RGB(0, 0, 0), iAlpha, LWA_ALPHA
End If
End Subبارك الله فيكم :blush:

