الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

صناعة الشفافية مع مثال

مغلق
بدأه HnHn في 21 سبتمبر 2004 · 8 رد · 1,984 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الشفافية

اولا يجب ان نتعرف على الدالة SetLayeredWindowAttributes وهى احدى دوال الــ ِA P I

* تعريف الدالة

Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

من المفترض ان اى نافذة تتكون من 255 طبقة شفافة ووجود هذة الطبقات المتراكبة ينتج النافذة المعتمة التى نراها

كما يمكن ان نختار لون يصبح شفاف تماما

والان نناقش ثوابت هذة الدالة

1 -hWnd تتحد النافذة التى سنجرى عليها العملية فلو اردنا ال form1 اذا فلنجعل له القيمة form1.hwnd

2 - Crkey تحدد لون اذا وجد على الفورم يصبح شفاف تماما

3 - Balpha تحدد عدد الطبقات التى تريدها ان تكون الفورم ومن ثم تحديد درجة الشفافية

4 - Dwflags تحدد نوع الفعل فمثلا اذا اردت الشفافية حسب عدد الطبقات تأخذ القيمة

Const LWA_ALPHA = &H2

اما اذا اردت ان تحدد لون يصبح شفاف تماما تأخذ القيمة

Const LWA_COLORKEY = &H1

مثال " شاشة الالعاب الاولمبية"

نقوم بعمل مديول Mudeol

أو في التعريف العام للفورم General

ضع الكود التالي

Const LWA_COLORKEY = &H1 
Const LWA_ALPHA = &H2 
Const GWL_EXSTYLE = (-20) 
Const WS_EX_LAYERED = &H80000 
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long 
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long 
Dim Ret As Long 
Dim r As Integer 

Function cir(xposition, yposition, radius, fast, density) 
pi = 4 * Atn(1) 
no = 200 * density: l = radius 
m = 2 * pi / no 
x0 = xposition: y0 = yposition 
For i = 0 To no 
X = l * Sin(m * i): y = l * Cos(m * i) 
X = x0 + X: y = y0 - y 
Line (X - 30, y - 30)-(X, y), RGB(50, 10, 250) 
For j = 1 To fast * 100: Next j 
Next i 
End Function

وفي حدث التحميل Form_Load نضع الكود التالي ....

Private Sub Form_Load() 
Me.BackColor = 0 
Me.WindowState = 2 
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE) 
Ret = Ret Or WS_EX_LAYERED 
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret 
SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_COLORKEY 
End Sub

وفي حدث البوينت للفورم Form_Paint نضع الكود التالي .

Private Sub Form_Paint() 
r = 2 * 567 
For i = 1 To 3 
cir 2 * r * i, 2 * r, r, 50, 50 
DoEvents 
Next i 
cir 3 * r, 3.7 * r, r, 50, 50 
cir 5 * r, 3.7 * r, r, 50, 50 
For i = 1 To 255 Step 5 
SetLayeredWindowAttributes Me.hWnd, RGB(30, 30, 30), i, LWA_ALPHA 
Next i 
End Sub

تم تعديل هذه المشاركة بواسطة HnHn في 21 سبتمبر 2004 في 20:39

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#2

مجهود جميل HnHn مشكوووووووووور جداً

قل لن يصيبنا إلا ما كتب الله لنا

#3
مشكور أخي HnHn علي هذا المجهود الرائع
img.jpg
#4

جهد جبار اخي HnHn ،،بارك الله فيك

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#5

أشكركم جميع على هذا التفاعل

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#6

مشكوووووووووووووووووووووووووووووووووووووووووور الى مالا نهاية .

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#7

هل يمكن تطبيق هذا المثال لجعل شبكة mshflexgrid شفافة

الرجاء مثال لو سمح لك وقتك

أخوك عبد الرحمن

#8

درس ممتاز اخي الفاضل HnHn خصوصا لعشاق الغيجوال جرافيك

جزاك الله خيرا

29_09_05_02_32_59_1128029579_4_13_3[_].gif

صور gif شفافة لتجميل واجة البرنامج

الخط العثماني للمهتمين ببرمجة برامج تلاوة القرآن

كيف يمكن عمل سكرول بالماوس, scroling by mouse wheel

كبفية استعراض ملف PDF في تكست

06_02_06_08_01_06_1139241666down-logo_1.gif

هل نكذب علي الله ام نكذب علي انفسنا

البـر لا يبلي ، و الذنب لا ينسـي ، و الديـان لا يمـوت ، افعـل مـا شئت كما تـديـن تـدان

ليس كل من تعمم مفتيا ، بل ان الدين الاسلامي ليس قيه كهانه و بالتالي ليس فيه ما يعرف ب رجال الدين – احمد رجب

                                  مع خالص تحيـــــــــــــــــــــــــــــــــاتي

                                                   GAF58 

#9

جميل أخي

لكن تذكرو ان SetLayeredWindowAttributes API لا تعمل الا مع ويندوز 2000 واكس بي وما بعدهم

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

هذا الموضوع مغلق.

مواضيع مشابهة