Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Jan 19, 2000

Let Users Resize Your Controls

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 Long
Private Declare Function SendMessage Lib _
	"user32" Alias "SendMessageA" (ByVal hWnd _
	As Long, ByVal wMsg As Long, ByVal wParam _
	As Long, lParam As Any) As Long
Private 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 = 10
Private Const HTRIGHT = 11
Private 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 With
End Sub
Private 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 If
End Sub
Fran Pregernik
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date