You can allow users to resize a control?just like in VB design mode?with a mouse, using two simple API calls. You can resize the control?top-left, top, top-right, left, right, bottom-left, bottom, and right. When you make ranges for the mouse coordinates (such as x>0 and x<100), the MouseDown event activates the API functions and sizes your picture box when the mouse moves. This code assumes you have a picture box on the form:
Private Declare Function ReleaseCapture Lib _ "user32" () As LongPrivate Declare Function SendMessage Lib _ "user32" Alias "SendMessageA" (ByVal hWnd _ As Long, ByVal wMsg As Long, ByVal wParam _ As Long, lParam As Any) As LongPrivate Const WM_NCLBUTTONDOWN = &HA1' You can find more of these (lower) in the API Viewer. Here ' they are used only for resizing the left and right.Private Const HTLEFT = 10Private Const HTRIGHT = 11Private Sub Picture1_MouseDown(Button As _ Integer, Shift As Integer, X As Single, Y As Single) Dim nParam As Long With Picture1 ' You can change these coordinates to whatever ' you want If (X > 0 And X < 100) Then nParam = HTLEFT ElseIf (X > .Width - 100 And X < .Width) Then ' these too nParam = HTRIGHT End If If nParam Then Call ReleaseCapture Call SendMessage(.hWnd, _ WM_NCLBUTTONDOWN, nParam, 0) End If End WithEnd SubPrivate Sub Picture1_MouseMove(Button As _ Integer, Shift As Integer, X As Single, Y As Single) Dim NewPointer As MousePointerConstants ' You can change these coordinates to whatever you want If (X > 0 And X < 100) Then NewPointer = vbSizeWE ElseIf (X > Picture1.Width - 100 And X < _ Picture1.Width) Then ' these too NewPointer = vbSizeWE Else NewPointer = vbDefault End If If NewPointer <> Picture1.MousePointer Then Picture1.MousePointer = NewPointer End IfEnd Sub