完全实现靠你自己了。我以前写过这种东西的,给你点经验吧(源码找不到了)1. 做一个控件ctlResizer,专门用于构建一个大小改变器。将这个控件背景设为透明,然后放上8个PictureBox,美化一下。然后要注意封装,将各个小手柄的拖动转换成Resize事件激发出去,而不要让调用者去分析PictureBox的事件。2. 关于PictureBox的形状设置,给一小段示例。在窗体上放一个Picture1,然后运行这个: Option Explicit Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Sub Form_Load() Dim hRgn As Long
Option Explicit
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Sub Form_Load()
Dim hRgn As Long
With Picture1
.BorderStyle = 0
.BackColor = vbRed
.Move 0, 0, 450, 450
hRgn = CreateEllipticRgn(0, 0, 30, 30)
SetWindowRgn .hWnd, hRgn, True
DeleteObject hRgn
End With
End Sub