تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: ساخت فرم دایره ای با لبه های نرم

  1. #1
    داره خودمونی میشه mranger's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    کرج
    پست ها
    179

    10 ساخت فرم دایره ای با لبه های نرم

    سلام .من میخواستم برنامه بنویسم شبیه به ساعت پایین ...فرم رو هم دایره ای کردم ولی لبه هاش خیلی تیزه و پیکسل پیکسله ..کلا زیاد قشنگ نشد ...
    میخواستم برای ساخت فرم با لبه های نرم منو راهنمایی کنید ...
    ممنون

  2. #2
    داره خودمونی میشه AQOUA's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    Tehran
    پست ها
    91

    پيش فرض

    با سلام
    اين يه مثال خوبه چون همه كاري كرده.!
    'general
    Const PS_DOT = 2
    Const PS_SOLID = 0
    Const RGN_AND = 1
    Const RGN_COPY = 5
    Const RGN_OR = 2
    Const RGN_XOR = 3
    Const RGN_DIFF = 4
    Const HS_DIAGCROSS = 5
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Type LOGPEN
    lopnStyle As Long
    lopnWidth As POINTAPI
    lopnColor As Long
    End Type
    Private Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long
    Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
    Private Declare Function CreatePenIndirect Lib "gdi32" (lpLogPen As LOGPEN) As Long
    Private Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
    Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
    Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
    Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
    Private Declare Function FrameRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
    Private Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function InvertRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long
    Private Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function Pie Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long
    Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function SetRect Lib "user32" (lpRect As RECT, 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 SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

    Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    End Sub

    Private Sub Form_Paint()
    Dim hHBr As Long, R As RECT, hFRgn As Long, hRRgn As Long, hRPen As Long, LP As LOGPEN
    Dim hFFBrush As Long, mIcon As Long, Cnt As Long
    'Clear the form
    Me.Cls
    'Set the rectangle's values
    SetRect R, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    'Create a new brush
    hHBr = CreateHatchBrush(HS_DIAGCROSS, vbRed)
    'Draw a frame
    FrameRect Me.hdc, R, hHBr
    'Draw a rounded rectangle
    hFRgn = CreateRoundRectRgn(0, 0, Me.ScaleWidth, Me.ScaleHeight, (Me.ScaleWidth / 3) * 2, (Me.ScaleHeight / 3) * 5)
    'Draw a frame
    FrameRgn Me.hdc, hFRgn, hHBr, Me.ScaleWidth, Me.ScaleHeight
    'Invert a region
    InvertRgn Me.hdc, hFRgn
    'Move our region
    OffsetRgn hFRgn, 10, 10
    'Create a new region
    hRRgn = CreateRectRgnIndirect(R)
    'Combine our two regions
    CombineRgn hRRgn, hFRgn, hRRgn, RGN_XOR
    'Draw a frame
    FrameRgn Me.hdc, hRRgn, hHBr, Me.ScaleWidth, Me.ScaleHeight
    'Crete a new pen
    hRPen = CreatePen(PS_SOLID, 5, vbBlue)
    'Select our pen into the form's device context and delete the old pen
    DeleteObject SelectObject(Me.hdc, hRPen)
    'Draw a rectangle
    Rectangle Me.hdc, Me.ScaleWidth / 2 - 25, Me.ScaleHeight / 2 - 25, Me.ScaleWidth / 2 + 25, Me.ScaleHeight / 2 + 25
    'Delete our pen
    DeleteObject hRPen
    LP.lopnStyle = PS_DOT
    LP.lopnColor = vbGreen
    'Create a new pen
    hRPen = CreatePenIndirect(LP)
    'Select our pen into the form's device context
    SelectObject Me.hdc, hRPen
    'Draw a rounded rectangle
    RoundRect Me.hdc, Me.ScaleWidth / 2 - 25, Me.ScaleHeight / 2 - 25, Me.ScaleWidth / 2 + 25, Me.ScaleHeight / 2 + 25, 50, 50
    'Create a new solid brush
    hFFBrush = CreateSolidBrush(vbYellow)
    'Select this brush into our form's device context
    SelectObject Me.hdc, hFFBrush
    'Floodfill our form
    FloodFill Me.hdc, Me.ScaleWidth / 2, Me.ScaleHeight / 2, vbBlue
    'Delete our brush
    DeleteObject hFFBrush
    'Create a new solid brush
    hFFBrush = CreateSolidBrush(vbMagenta)
    'Select our solid brush into our form's device context
    SelectObject Me.hdc, hFFBrush
    'Draw a Pie
    Pie Me.hdc, Me.ScaleWidth / 2 - 15, Me.ScaleHeight / 2 - 15, Me.ScaleWidth / 2 + 15, Me.ScaleHeight / 2 + 15, 20, 20, 20, 20
    'Extract icons from 'shell32.dll' and draw them on the form
    For Cnt = 0 To Me.ScaleWidth / 32
    ExtractIconEx "shell32.dll", Cnt, mIcon, ByVal 0&, 1
    DrawIcon Me.hdc, 32 * Cnt, 0, mIcon
    DestroyIcon mIcon
    Next Cnt
    'Clean up
    DeleteObject hFFBrush
    DeleteObject hRPen
    DeleteObject hRRgn
    DeleteObject hFRgn
    DeleteObject hHBr
    End Sub

    Private Sub Form_Resize()
    Form_Paint
    End Sub


  3. این کاربر از AQOUA بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه mranger's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    کرج
    پست ها
    179

    پيش فرض

    با سلام
    اين يه مثال خوبه چون همه كاري كرده.!
    'general
    Const PS_DOT = 2
    Const PS_SOLID = 0
    Const RGN_AND = 1
    Const RGN_COPY = 5
    Const RGN_OR = 2
    Const RGN_XOR = 3
    Const RGN_DIFF = 4
    Const HS_DIAGCROSS = 5
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Type LOGPEN
    lopnStyle As Long
    lopnWidth As POINTAPI
    lopnColor As Long
    End Type
    Private Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long
    Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
    Private Declare Function CreatePenIndirect Lib "gdi32" (lpLogPen As LOGPEN) As Long
    Private Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
    Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
    Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
    Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
    Private Declare Function FrameRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
    Private Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function InvertRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long
    Private Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function Pie Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long
    Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function SetRect Lib "user32" (lpRect As RECT, 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 SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

    Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    End Sub

    Private Sub Form_Paint()
    Dim hHBr As Long, R As RECT, hFRgn As Long, hRRgn As Long, hRPen As Long, LP As LOGPEN
    Dim hFFBrush As Long, mIcon As Long, Cnt As Long
    'Clear the form
    Me.Cls
    'Set the rectangle's values
    SetRect R, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    'Create a new brush
    hHBr = CreateHatchBrush(HS_DIAGCROSS, vbRed)
    'Draw a frame
    FrameRect Me.hdc, R, hHBr
    'Draw a rounded rectangle
    hFRgn = CreateRoundRectRgn(0, 0, Me.ScaleWidth, Me.ScaleHeight, (Me.ScaleWidth / 3) * 2, (Me.ScaleHeight / 3) * 5)
    'Draw a frame
    FrameRgn Me.hdc, hFRgn, hHBr, Me.ScaleWidth, Me.ScaleHeight
    'Invert a region
    InvertRgn Me.hdc, hFRgn
    'Move our region
    OffsetRgn hFRgn, 10, 10
    'Create a new region
    hRRgn = CreateRectRgnIndirect(R)
    'Combine our two regions
    CombineRgn hRRgn, hFRgn, hRRgn, RGN_XOR
    'Draw a frame
    FrameRgn Me.hdc, hRRgn, hHBr, Me.ScaleWidth, Me.ScaleHeight
    'Crete a new pen
    hRPen = CreatePen(PS_SOLID, 5, vbBlue)
    'Select our pen into the form's device context and delete the old pen
    DeleteObject SelectObject(Me.hdc, hRPen)
    'Draw a rectangle
    Rectangle Me.hdc, Me.ScaleWidth / 2 - 25, Me.ScaleHeight / 2 - 25, Me.ScaleWidth / 2 + 25, Me.ScaleHeight / 2 + 25
    'Delete our pen
    DeleteObject hRPen
    LP.lopnStyle = PS_DOT
    LP.lopnColor = vbGreen
    'Create a new pen
    hRPen = CreatePenIndirect(LP)
    'Select our pen into the form's device context
    SelectObject Me.hdc, hRPen
    'Draw a rounded rectangle
    RoundRect Me.hdc, Me.ScaleWidth / 2 - 25, Me.ScaleHeight / 2 - 25, Me.ScaleWidth / 2 + 25, Me.ScaleHeight / 2 + 25, 50, 50
    'Create a new solid brush
    hFFBrush = CreateSolidBrush(vbYellow)
    'Select this brush into our form's device context
    SelectObject Me.hdc, hFFBrush
    'Floodfill our form
    FloodFill Me.hdc, Me.ScaleWidth / 2, Me.ScaleHeight / 2, vbBlue
    'Delete our brush
    DeleteObject hFFBrush
    'Create a new solid brush
    hFFBrush = CreateSolidBrush(vbMagenta)
    'Select our solid brush into our form's device context
    SelectObject Me.hdc, hFFBrush
    'Draw a Pie
    Pie Me.hdc, Me.ScaleWidth / 2 - 15, Me.ScaleHeight / 2 - 15, Me.ScaleWidth / 2 + 15, Me.ScaleHeight / 2 + 15, 20, 20, 20, 20
    'Extract icons from 'shell32.dll' and draw them on the form
    For Cnt = 0 To Me.ScaleWidth / 32
    ExtractIconEx "shell32.dll", Cnt, mIcon, ByVal 0&, 1
    DrawIcon Me.hdc, 32 * Cnt, 0, mIcon
    DestroyIcon mIcon
    Next Cnt
    'Clean up
    DeleteObject hFFBrush
    DeleteObject hRPen
    DeleteObject hRRgn
    DeleteObject hFRgn
    DeleteObject hHBr
    End Sub

    Private Sub Form_Resize()
    Form_Paint
    End Sub
    ببخشید ...میشه یکم در مورد کدتون توضیح بدید...

  5. #4
    داره خودمونی میشه AQOUA's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    Tehran
    پست ها
    91

    پيش فرض

    ببخشید ...میشه یکم در مورد کدتون توضیح بدید...
    self documenting اين برنامه خيلي واضحه.
    بعدش شما بهتره سورس برنامتون رو بزاريد تا ما موضوع رو حل كنيم.
    اگر نه كه، كجاي سورس رو مشكل داريد بگيد تا من بهتون توضيح بدم.
    با تشكر

  6. #5
    داره خودمونی میشه Dark.Lord's Avatar
    تاريخ عضويت
    Aug 2007
    محل سكونت
    C:\Windows\Temp
    پست ها
    166

    پيش فرض

    به نظر من بهتره این کار را انجام بدهید:
    1.ابتدا فرم را با کد های مخصوص نامرئی کنید.
    2.سپس به جای فرم شکل مربوطه در در فتوشاپ طراحی کرده و با یک امیج (یل پیکچر) رو فرم بگذارید!
    3.حالش رو ببرید!
    اگر در جای مشکل داشتی بگو تا نمونه کد بگذارم.

  7. #6
    داره خودمونی میشه SMVV's Avatar
    تاريخ عضويت
    Dec 2008
    محل سكونت
    izeh
    پست ها
    34

    پيش فرض

    سلام دوستان عزیز این کدها جالبه ولی من یه کد جالب تر دارم که متونید فرمتونو به صورت ستاره ای ببینید.
    اگه کسی موخواد بگه تا براش بزارم.
    آخه الان تو دسترسم نیست که بزارم.

  8. #7
    داره خودمونی میشه Dark.Lord's Avatar
    تاريخ عضويت
    Aug 2007
    محل سكونت
    C:\Windows\Temp
    پست ها
    166

    پيش فرض

    سلام دوستان عزیز این کدها جالبه ولی من یه کد جالب تر دارم که متونید فرمتونو به صورت ستاره ای ببینید.
    اگه کسی موخواد بگه تا براش بزارم.
    آخه الان تو دسترسم نیست که بزارم.

    من هم این کد را دیده ام،
    خیلی قدیمی هست،
    برای همچین گرافیکی یک راه ساده تر نیز وجود دارد،
    ابتدا فرم را نامرئی می کنیم،
    سپس عکس متحرک دلخواه خودمان را به روی فرم قرار می دهیم،
    برنامه آمادست!

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •