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

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

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

مُساهمة من طرف بنت البلد في الإثنين مايو 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


بنت البلد
....
....

تاريخ التسجيل : 18/02/2011
المساهمات : 66
النقاط : 126
التقيم : 6
الجنس : انثى

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

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

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

أشكرك  Embarassed 

مدونة وليدوف التطويرية
...
...

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

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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