تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك
#34
[b]
بسم الله الرحمن الرحيم

أفتح مشروع جديد

قم بوضع هذا الكود تحت كلمة Public Class Form1
كود :
Private mParent As Form
    Public ReadOnly Property Parentt() As Form
        Get
            Return mParent
        End Get
    End Property

    Private mMovable As Boolean = True
    Public Property Movable() As String
        Get
            Return mMovable
        End Get
        Set(ByVal value As String)
            mMovable = value
        End Set
    End Property

    Public Sub SetImage(ByVal frm As Form, ByVal btm As Bitmap)

        Try
            mParent = frm

            Dim exStyle As Int32 = APIs.GetWindowLong(frm.Handle.ToInt32, APIs.GWL_EXSTYLE)

            APIs.SetWindowLong(frm.Handle.ToInt32, APIs.GWL_EXSTYLE, exStyle Or APIs.WS_EX_LAYERED)
            If Not (Bitmap.IsCanonicalPixelFormat(btm.PixelFormat)) Or Not (Bitmap.IsAlphaPixelFormat(btm.PixelFormat)) Then
                Throw New ApplicationException("The picture must be 32bit picture with alpha channel.")
            End If

            Dim hDC As Int32 = APIs.GetDC(0)
            Dim hBtm As Int32
            Dim memDC As Int32 = APIs.CreateCompatibleDC(hDC)
            Dim Bits As Int32

            Dim dstPos As New APIs.POINTAPI(frm.Left, frm.Top)
            Dim srcPos As New APIs.POINTAPI(0, 0)
            Dim Siz As New APIs.SizeAPI(btm.Width, btm.Height)
            Dim Opt As New APIs.BLEND_OPTIONS

            Opt.SourceConstantAlpha = 255
            Opt.AlphaFormat = 1
            Opt.BlendOp = 0
            Opt.BlendFlags = 0

            Try
                hBtm = btm.GetHbitmap(Color.Black).ToInt32
                Bits = APIs.SelectObject(memDC, hBtm)

                APIs.UpdateLayeredWindow(frm.Handle, hDC, dstPos, Siz, memDC, srcPos, 0, Opt, 2)
            Catch ex As Exception

            End Try

            If hBtm <> 0 Then
                APIs.SelectObject(memDC, Bits)
                APIs.DeleteObject(hBtm)
            End If

            APIs.ReleaseDC(0, hDC)
            APIs.DeleteDC(memDC)

        Catch ex As Exception

        End Try
    End Sub


    Private mLastLocation As Point
    Private Class APIs

        Public Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As Int32) As Int32
        Public Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Int32) As Int32
        Public Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As Int32, ByVal hObject As Int32) As Int32
        Public Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Int32, ByVal hdc As Int32) As Int32
        Public Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As Int32) As Int32
        Public Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Int32) As Int32
        Public Declare Function UpdateLayeredWindow Lib "user32.dll" (ByVal hWnd As Int32, ByVal hdcDst As Int32, ByRef pptDst As POINTAPI, ByRef psize As SizeAPI, ByVal hdcSrc As Int32, ByRef pptSrc As POINTAPI, ByVal crKey As Int32, ByRef pblend As BLEND_OPTIONS, ByVal dwFlags As Int32) As Int32
        Public Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongW" (ByVal hwnd As Int32, ByVal nIndex As Int32) As Int32
        Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongW" (ByVal hwnd As Int32, ByVal nIndex As Int32, ByVal dwNewLong As Int32) As Int32

        Public Const GWL_EXSTYLE As Int32 = -20
        Public Const WS_EX_LAYERED As Int32 = &H80000

        <StructLayout(LayoutKind.Sequential, Pack:=1)> _
        Public Structure BLEND_OPTIONS
            Public BlendOp As Byte
            Public BlendFlags As Byte
            Public SourceConstantAlpha As Byte
            Public AlphaFormat As Byte
        End Structure

        <StructLayout(LayoutKind.Sequential)> _
        Public Structure SizeAPI
            Public cx As Int32
            Public cy As Int32

            Sub New(ByVal cx As Int32, ByVal cy As Int32)
                Me.cx = cx
                Me.cy = cy
            End Sub
        End Structure

        <StructLayout(LayoutKind.Sequential)> _
        Public Structure POINTAPI
            Public x As Int32
            Public y As Int32

            Sub New(ByVal x As Int32, ByVal y As Int32)
                Me.x = x
                Me.y = y
            End Sub
        End Structure


        Public Declare Function ExtCreateRegion Lib "gdi32.dll" ( _
          ByRef lpXform As XFORM, _
          ByVal nCount As Int32, _
          ByRef lpRgnData As RGNDATA) As Int32
        <StructLayout(LayoutKind.Sequential)> _
        Public Structure XFORM
            Public eM11 As Single
            Public eM12 As Single
            Public eM21 As Single
            Public eM22 As Single
            Public eDx As Single
            Public eDy As Single
        End Structure

        <StructLayout(LayoutKind.Sequential)> _
        Public Structure RGNDATA
            Public rdh As RGNDATAHEADER
            Public Buffer As Byte
        End Structure

        <StructLayout(LayoutKind.Sequential)> _
        Public Structure RGNDATAHEADER
            Public dwSize As Int32
            Public iType As Int32
            Public nCount As Int32
            Public nRgnSize As Int32
            Public rcBound As RECT
        End Structure

        <StructLayout(LayoutKind.Sequential)> _
        Public Structure RECT
            Public Left As Int32
            Public Top As Int32
            Public Right As Int32
            Public Bottom As Int32
        End Structure


    End Class

ثم ضع هذا الكود أعلى الكلمة

كود :
Imports System.Runtime.InteropServices

ثم في الحدث form load
كود :
Dim Layer As New Form1
        Layer.SetImage(Me, Me.BackgroundImage)

ثم أجعل خاصية الفورم formborderstyle إلى none

ثم غير خلفية الفورم وأجعلها الصورة الpng الي حضرتك عايزها


أنتهى أنا آسف الشرح مش كويس بس علشان مستعجل أنا آسف أخي الحبيب
[/b]
رابط قناتي على اليوتيوب :
https://www.youtube.com/user/OsamaAhmadGalal
رابط حساب الفيسبوك :

https://www.facebook.com/P.Osama.Ahmad.Galal
رابط حساب التويتر :
https://twitter.com/osamaahmadgalal
البريد الإلكتروني للتواصل :
OsamaAhmadGalal@Hotmail.Com
OsamaAhmadGalal@Yahoo.Com
OsamaAhmadGalal@Gmail.Com
رقم الموبايل :
00201122777845

الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك - بواسطة أسامة أحمد - 09-10-12, 08:58 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Rainbow [VB.NET] كلاس ResizeControls وطريقة جديد ومميزة لتكبير وتصغير ادوات الفورم تلقائيا الماجيك مسعد 9 10,569 19-07-25, 05:59 PM
آخر رد: Mostafa25
  [VB.NET] سؤال عن طريقة نسخ كل الروابط و اسم الرابط من موقع انترنت toedi 4 3,713 01-05-24, 06:55 AM
آخر رد: justforit
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 13 7,690 15-04-24, 01:13 AM
آخر رد: أبو جودة
  حساب مكان الفورم علي شاشة الكمبيوتر silverlight 2 3,622 18-06-23, 03:26 PM
آخر رد: kebboud
  طريقة إنشاء برنامج طباعة ملصقات الباركود ملهمـ 1 5,025 22-12-21, 05:09 PM
آخر رد: alessam4pro
  طريقة عمل نسخة لتثبيت فيجوال ستوديو بدون نت معاند الحظ 12 9,668 11-12-21, 04:26 PM
آخر رد: اسلام الكبابى
  طريقة تشغيل كريستال ريبورت بجميع ادارات فيجول نت abdhassan 3 7,587 26-02-21, 08:57 PM
آخر رد: علي النقيب
  طريقة إضافة اختصار للصنف في شاشة المبيعات ملهمـ 5 6,432 14-07-20, 12:24 PM
آخر رد: ابراهيم ايبو
Heart [مقال] شرح طريقة معرفة محتوى الكوكيز sooriaty03 5 6,628 11-02-20, 03:18 PM
آخر رد: DK-x
  طريقة تقسيم كودك البرمجة الي سطرين أو أكثر كم تريد dametucorazon 1 4,385 06-09-19, 12:55 AM
آخر رد: سعود

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


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