تقييم الموضوع :
  • 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)الوادي كتب : يا محمد،

ما جاوبتني.!

اخي اسمحلي على التدخل
انا ايظا جربته عندي ولم يعمل
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تشغيل برنامج خارجي ضمن شاشة برنامجي strongriseman 1 341 13-09-23, 10:14 PM
آخر رد: anes
  [VB.NET] كود لفتح ملف اكسس خارجي يحتوي على كلمة سر فيجول استوديو 2015 يوسف العزير 14 1,794 20-11-22, 12:26 PM
آخر رد: يوسف العزير
  [VB.NET] كود لفتح ملف اكسس خارجي يحتوي على كلمة سر فيجول استوديو 2015 يوسف العزير 0 618 05-11-22, 03:08 PM
آخر رد: يوسف العزير
  مطلوب كود تغيير الالوان للفورم bilgacim 1 927 21-06-22, 08:32 PM
آخر رد: asmarsou
Question [سؤال] إضافة مربع بحث للفورم أحمد الغرباوي 5 1,701 14-03-22, 08:55 PM
آخر رد: أحمد الغرباوي
  مشكلة في فتح برنامج خارجي SaedAmer 5 1,680 27-02-22, 05:42 AM
آخر رد: SaedAmer
  مطلوب كود ضبط ابعاد الشاشة للفورم تلقائيا بعد الفتح ... bilgacim 4 1,723 16-02-22, 11:37 PM
آخر رد: محمود بكرى
  الرجوع للفورم الرئيسيةعند عدم تحريك الماوس لمدة معينة جيولوجي مبتدئ 7 1,770 25-07-21, 07:33 PM
آخر رد: ابراهيم ايبو
  كود زر refresh للفورم ممكن حل لو سمحتو ؟ fathy54654 6 2,249 11-07-21, 04:23 PM
آخر رد: asmarsou
  [سؤال] عن إمكانية استخدام قاعدة بيانات أكسس من سيرفر خارجي ADAM12 0 945 17-01-21, 06:19 PM
آخر رد: ADAM12

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


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