تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ظل خارجي للفورم
#1
اريد كود عمل ظل خارجي للفورم يعمل علي جميع النسخ

استخدمت كود ولكن لايعمل علي النسخة 7 64 بت اريد كود يعمل مع اختلاف النسخ اكس بي او 7 او 8 بكلا النواتيين ويكون بسيط
الرد }}}}
تم الشكر بواسطة:
#2
جرب هذا
كود :
 Private Const CS_DROPSHADOW As Integer = 131072

   Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
       Get
           Dim cp As CreateParams = MyBase.CreateParams
           Dim OSVer As Version = System.Environment.OSVersion.Version()
           Select Case OSVer.Major
               Case Is < 5
               Case 5
                   If OSVer.Minor > 0 Then
                       cp.ClassStyle = cp.ClassStyle Or CS_DROPSHADOW
                   End If
               Case Is > 5
                   cp.ClassStyle = cp.ClassStyle Or CS_DROPSHADOW
               Case Else
           End Select
           Return cp
       End Get
   End Property
الرد }}}}
تم الشكر بواسطة: الوادي
#3
يا محمد،

هذا كود آخر يظهر ظل في جميع الجوانب، ولا تنسى أن لا تضع للفورم حدوديعني Me.FormBorderStyle = FormBorderStyle.None

هذه النتيجة


وهذا الكود بالفجوال بيسيك
PHP كود :
#Region " Drop Shadow On A Borderless WinForm "
 
   '' http://stackoverflow.com/questions/16493698/drop-shadow-on-a-borderless-winform
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmExtendFrameIntoClientArea(hWnd As IntPtrByRef pMarInset As Padding) As Integer
    End 
Function
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmSetWindowAttribute(hwnd As IntPtrattr As IntegerByRef attrValue As IntegerattrSize As Integer) As Integer
    End 
Function
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmIsCompositionEnabled(ByRef pfEnabled As Integer) As Integer
    End 
Function
 
   Private m_aeroEnabled As Boolean
    
'' variables for box shadow
    Private 
Const CS_DROPSHADOW As Integer = &H20000
    Private 
Const WM_NCPAINT As Integer = &H85
    Private 
Const WM_ACTIVATEAPP As Integer = &H1C
    Private 
Const WM_NCHITTEST As Integer = &H84
    
'' variables for dragging the form
    Private 
Const HTCLIENT As Integer = &H1
    Private 
Const HTCAPTION As Integer = &H2
    Protected Overrides ReadOnly Property CreateParams
() As CreateParams

        Get
            m_aeroEnabled 
CheckAeroEnabled()
 
           Dim cp As CreateParams MyBase.CreateParams
            If Not m_aeroEnabled Then
                cp
.ClassStyle cp.ClassStyle Or CS_DROPSHADOW
            End 
If
 
           Return cp
        End Get
    End Property
    Private 
Function CheckAeroEnabled() As Boolean
        If Environment
.OSVersion.Version.Major >= 6 Then
            Dim enabled 
As Integer 0
            DwmIsCompositionEnabled
(enabled)
 
           Return If((enabled 1), TrueFalse)
 
       End If
 
       Return False
    End 
Function
 
   Protected Overrides Sub WndProc(ByRef m As Message)
 
       Select Case m.Msg
            Case WM_NCPAINT
                
'' box shadow
                If m_aeroEnabled Then
                    Dim v 
2
                    DwmSetWindowAttribute
(Me.Handle2v4)
 
                   Dim margins As New Padding(1111)
 
                   DwmExtendFrameIntoClientArea(Me.Handlemargins)
 
               End If
 
               Exit Select
            Case 
Else
 
               Exit Select
        End Select
        MyBase
.WndProc(m)
 
       '' drag the form
        If m
.Msg WM_NCHITTEST AndAlso CInt(m.Result) = HTCLIENT Then
            m
.Result HTCAPTION
        End 
If

 
   End Sub
#End Region 
الرد }}}}
تم الشكر بواسطة: أسامة
#4
(05-07-16, 07:26 AM)الوادي كتب : يا محمد،

هذا كود آخر يظهر ظل في جميع الجوانب، ولا تنسى أن لا تضع للفورم حدوديعني Me.FormBorderStyle = FormBorderStyle.None

هذه النتيجة


وهذا الكود بالفجوال بيسيك
PHP كود :
#Region " Drop Shadow On A Borderless WinForm "
 
   '' http://stackoverflow.com/questions/16493698/drop-shadow-on-a-borderless-winform
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmExtendFrameIntoClientArea(hWnd As IntPtrByRef pMarInset As Padding) As Integer
    End 
Function
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmSetWindowAttribute(hwnd As IntPtrattr As IntegerByRef attrValue As IntegerattrSize As Integer) As Integer
    End 
Function
 
   <Runtime.InteropServices.DllImport("dwmapi.dll")> _
    Public Shared 
Function DwmIsCompositionEnabled(ByRef pfEnabled As Integer) As Integer
    End 
Function
 
   Private m_aeroEnabled As Boolean
    
'' variables for box shadow
    Private 
Const CS_DROPSHADOW As Integer = &H20000
    Private 
Const WM_NCPAINT As Integer = &H85
    Private 
Const WM_ACTIVATEAPP As Integer = &H1C
    Private 
Const WM_NCHITTEST As Integer = &H84
    
'' variables for dragging the form
    Private 
Const HTCLIENT As Integer = &H1
    Private 
Const HTCAPTION As Integer = &H2
    Protected Overrides ReadOnly Property CreateParams
() As CreateParams

        Get
            m_aeroEnabled 
CheckAeroEnabled()
 
           Dim cp As CreateParams MyBase.CreateParams
            If Not m_aeroEnabled Then
                cp
.ClassStyle cp.ClassStyle Or CS_DROPSHADOW
            End 
If
 
           Return cp
        End Get
    End Property
    Private 
Function CheckAeroEnabled() As Boolean
        If Environment
.OSVersion.Version.Major >= 6 Then
            Dim enabled 
As Integer 0
            DwmIsCompositionEnabled
(enabled)
 
           Return If((enabled 1), TrueFalse)
 
       End If
 
       Return False
    End 
Function
 
   Protected Overrides Sub WndProc(ByRef m As Message)
 
       Select Case m.Msg
            Case WM_NCPAINT
                
'' box shadow
                If m_aeroEnabled Then
                    Dim v 
2
                    DwmSetWindowAttribute
(Me.Handle2v4)
 
                   Dim margins As New Padding(1111)
 
                   DwmExtendFrameIntoClientArea(Me.Handlemargins)
 
               End If
 
               Exit Select
            Case 
Else
 
               Exit Select
        End Select
        MyBase
.WndProc(m)
 
       '' drag the form
        If m
.Msg WM_NCHITTEST AndAlso CInt(m.Result) = HTCLIENT Then
            m
.Result HTCAPTION
        End 
If

 
   End Sub
#End Region 

مش عارف اشكرك ازاي علي تعبك معايا ولكن نفس المشكلة الكود يعمل علي اكس بي و7 32 بت

ولكن علي جهازي 64 بت لايعمل اي ظل خارجي مهما كان علي الرغم من ان الفيجول بيسك 2013 فية ظل خارجي ويعمل علي جهازي العنيد 64 بت

والكود دة انا كنت بستخدمة علي النسخة 32 بت ولا يعمل علي 64 بت Huh Huh Huh Huh في اية خطا وهل الكود الخاص بك قمت بتجربة علي ويندوز 64 بت

كود :
Public CS_DROPSHADOW As Int32 = &H20000
   Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
       Get
           Dim parameters As CreateParams = MyBase.CreateParams
           parameters.ClassStyle += CS_DROPSHADOW
           Return parameters
       End Get
   End Property

(05-07-16, 06:13 AM)أسامة كتب : جرب هذا
كود :
 Private Const CS_DROPSHADOW As Integer = 131072

   Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
       Get
           Dim cp As CreateParams = MyBase.CreateParams
           Dim OSVer As Version = System.Environment.OSVersion.Version()
           Select Case OSVer.Major
               Case Is < 5
               Case 5
                   If OSVer.Minor > 0 Then
                       cp.ClassStyle = cp.ClassStyle Or CS_DROPSHADOW
                   End If
               Case Is > 5
                   cp.ClassStyle = cp.ClassStyle Or CS_DROPSHADOW
               Case Else
           End Select
           Return cp
       End Get
   End Property
مشكور جدا اخي اسامة ولكن الكود لايعمل عندي علي النسخة7  64 بت ويعمل علي باقي النسخ اكس بي  و 7 32 بت
الرد }}}}
تم الشكر بواسطة:
#5
يا محمد،

غير خصائص المشروع واجعله على x86 وبكذا يعمل على 32 و 64
الرد }}}}
تم الشكر بواسطة: أسامة
#6
(05-07-16, 09:22 AM)الوادي كتب : يا محمد،

غير خصائص المشروع واجعله على x86 وبكذا يعمل على 32 و 64

Wink  برنامجي x86  وليس 64

ولكن المشكلة بجهازي ويندوز 7  64  بت Dodgy
الرد }}}}
تم الشكر بواسطة:
#7
يا محمد،

أنا جهازي ويندوز 7 64 بت ويعمل لدي حتى أنني لم أنني غيرته لكل الخيارات AnyCPU و x86 وx64 ولم أواجه مشكلة.

هل تستخدم ستايل أو ثيم خاص للويندوز؟ مجرد احتمال
الرد }}}}
تم الشكر بواسطة:
#8
(05-07-16, 09:39 AM)الوادي كتب : يا محمد،

أنا جهازي ويندوز 7  64  بت ويعمل لدي حتى أنني لم أنني غيرته لكل الخيارات AnyCPU و x86 وx64 ولم أواجه مشكلة.

هل تستخدم ستايل أو ثيم خاص للويندوز؟ مجرد احتمال

مدام الاكواد تعمل جيد اعندك علي فيرجن  64  انا هعتمد الكود لحد مجربة بعد عمل نسخة جديدة عندي 64 او علي جهاز اخر انشاءاللة

وكل عام وانتم بخير جميعا بمناسبة عيد الفطر
الرد }}}}
تم الشكر بواسطة: الوادي
#9
يا محمد،

ما جاوبتني.!
الرد }}}}
تم الشكر بواسطة:
#10
(05-07-16, 09:49 AM)الوادي كتب : يا محمد،

ما جاوبتني.!

اخي اسمحلي على التدخل
انا ايظا جربته عندي ولم يعمل

[صورة مرفقة: 000.gif]
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] سؤال في كيفية تحميل ملف من رابط خارجي الى مسار محدد mohammad.anon 1 115 26-06-16, 08:35 PM
آخر رد: mohamed haroon
Rainbow [VB.NET] اريد عمل تظليل خفيف للفورم محمد اسماعيل 0 162 01-06-16, 11:26 PM
آخر رد: محمد اسماعيل
  [سؤال] مطلوب برنامج ثيمات (اشكال للفورم) عبد الرحمن متولي 5 343 06-04-16, 09:21 AM
آخر رد: hassan
  [VB.NET] سؤال عن نقطة الأصل للفورم Fantastico 5 194 02-04-16, 01:47 AM
آخر رد: myalsailamy
Photo طلب ضروري خاص بحفظ صورة كخلفية للفورم فىmy.setting Last Warrior 4 958 26-02-16, 11:10 AM
آخر رد: hashim
  سؤال/شكل الإطار الخارجي للفورم mtx2525 6 398 31-01-16, 03:51 AM
آخر رد: mtx2525
Bug [VB.NET] اضافة علامة مائية للفورم محمد اسماعيل 8 602 01-11-15, 01:41 PM
آخر رد: silverlight
  زر حفظ للفورم ككل samers 3 380 28-01-15, 01:36 AM
آخر رد: samers
  [سؤال] لا أستطيع وضع خلفية للفورم nehayh 8 2,181 30-10-14, 12:18 AM
آخر رد: Dev Saeed
Thumbs Down وضع خلفية للفورم mesm23 2 720 26-05-14, 06:41 PM
آخر رد: عمار عيثاوي

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


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