[vb.net]마우스 Form 이동과 곡면 태두리 만들기!

2018. 12. 18. 20:08Programming/VB.net


안녕하세요! Nitro입니다!

이번 동영상은 vb.net의 디자인을 더욱 심플하고 멋있게 만들 수 있도록 도움을 주는 기본적인 2가지의 기능을 가져왔습니다.

Borderless form의 위치를 움직일 수 있도록 도와주는 Form Move 기능, 그리고 컨트롤에다가 곡면을 넣어주는 Rounded Control 기능까지!

디자인을 한층 더 멋있게 만들어줄 기능들을 지금 확인해 보세요!

[소스코드]

 Imports System.Runtime.InteropServices

Public Class Tool
    <DllImport("user32.dll")>
    Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    End Function

    <DllImport("user32.dll")>
    Public Shared Function ReleaseCapture() As Boolean
    End Function

    Public Shared Sub MouseMove(Handle As IntPtr)
        ReleaseCapture()
        SendMessage(Handle, &HA1, &H2, 0)
    End Sub

    Public Shared Sub RoundedControl(C As Control)
        Dim ellipseRadius As New Drawing2D.GraphicsPath
        ellipseRadius.StartFigure()
        ellipseRadius.AddArc(New Rectangle(0, 0, 20, 20), 180, 90)
        ellipseRadius.AddLine(20, 0, C.Width - 20, 0)
        ellipseRadius.AddArc(New Rectangle(C.Width - 20, 0, 20, 20), -90, 90)
        ellipseRadius.AddLine(C.Width, 20, C.Width, C.Height - 20)
        ellipseRadius.AddArc(New Rectangle(C.Width - 20, C.Height - 20, 20, 20), 0, 90)
        ellipseRadius.AddLine(C.Width - 20, C.Height, 20, C.Height)
        ellipseRadius.AddArc(New Rectangle(0, C.Height - 20, 20, 20), 90, 90)
        ellipseRadius.CloseFigure()
        C.Region = New Region(ellipseRadius)
    End Sub
End Class


반응형