منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

كود النافذة الشفافة بأدوات ظاهرة

اذهب الى الأسفل

كود النافذة الشفافة بأدوات ظاهرة  Empty كود النافذة الشفافة بأدوات ظاهرة

مُساهمة من طرف بنت البلد الإثنين مايو 05, 2014 8:13 am

فى قسم التصريحات قم بكتابة الكود التالى :

الكود:
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

بعد ذلك نقوم بكتابة الاجراء GlassifyForm وهو الذى يحتوى على كافة الاكواد اللازمة لعمل نافذة شفافة

الكود:
Public Sub GlassifyForm(frm As Form)
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 WindowState = vbMinimized Then Exit Sub


    wid = ScaleX(Width, vbTwips, vbPixels)
    hgt = ScaleY(Height, vbTwips, vbPixels)
    outer_rgn = CreateRectRgn(0, 0, wid, hgt)

    border_width = (wid - ScaleWidth) / 2
    title_height = hgt - border_width - 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 Controls
        If ctl.Container Is frm Then
            ctl_left = ScaleX(ctl.Left, frm.ScaleMode, vbPixels) _
                + border_width
            ctl_top = ScaleX(ctl.Top, frm.ScaleMode, vbPixels) _
                + title_height
            ctl_right = ScaleX(ctl.Width, frm.ScaleMode, vbPixels) _
                + ctl_left
            ctl_bottom = 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 hWnd, combined_rgn, True
End Sub

فى حدث Form_Resize نقوم بتنفيذ الاجراء على النحو التالى :

الكود:
Private Sub Form_Resize()
    GlassifyForm Me
End Sub

كود النافذة الشفافة بأدوات ظاهرة  578882763
بنت البلد
بنت البلد
.....
.....

تاريخ التسجيل : 18/02/2011
المساهمات : 85
النقاط : 160
التقيم : 11
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كود النافذة الشفافة بأدوات ظاهرة  Empty رد: كود النافذة الشفافة بأدوات ظاهرة

مُساهمة من طرف مدونة وليدوف التطويرية الأحد يونيو 29, 2014 10:42 am

أشكرك  Embarassed 
مدونة وليدوف التطويرية
مدونة وليدوف التطويرية
...
...

تاريخ التسجيل : 22/11/2011
المساهمات : 32
النقاط : 48
التقيم : 4
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى