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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date