fyip
May 18th, 2001, 03:04 AM
I wish to put more than image in a picture box...and all image in the picture box are able to resize using mouse... do anyone got any idea for me to do this? please help!
thanks
Frankie
thanks
Frankie
|
Click to See Complete Forum and Search --> : resize images in picture box fyip May 18th, 2001, 03:04 AM I wish to put more than image in a picture box...and all image in the picture box are able to resize using mouse... do anyone got any idea for me to do this? please help! thanks Frankie shree May 18th, 2001, 08:12 AM Place several image boxes in a picturebox control. Set the Stretch property of each imagebox to true and load your pictures in these image boxes. Now, when you change the height and width properties of the imageboxes, the pictures will resize. Changing the size with the mouse (and you would want resizing handles too), it is a bit more complicated... shree May 18th, 2001, 08:17 AM Here is the complete form code from a project I churned out for you. Load your images in the two image boxes within the picture box. There is a picture box. Within it are two image boxes with the images and eight labels for the handles. You will ahve to work upon it to make it better. VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 6660 ClientLeft = 60 ClientTop = 345 ClientWidth = 7320 LinkTopic = "Form1" ScaleHeight = 6660 ScaleWidth = 7320 StartUpPosition = 3 'Windows Default Begin VB.PictureBox Picture1 Height = 5295 Left = 600 ScaleHeight = 5235 ScaleWidth = 5235 TabIndex = 1 Top = 480 Width = 5295 Begin VB.Image imgPic Appearance = 0 'Flat BorderStyle = 1 'Fixed Single Height = 2415 Index = 1 Left = 960 Picture = "Form1.frx":0000 Stretch = -1 'true Top = 1920 Width = 1935 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 7 Left = 4080 MousePointer = 8 'Size NW SE TabIndex = 9 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 6 Left = 3720 MousePointer = 7 'Size N S TabIndex = 8 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 5 Left = 3480 MousePointer = 6 'Size NE SW TabIndex = 7 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 4 Left = 3120 MousePointer = 9 'Size W E TabIndex = 6 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 3 Left = 2880 MousePointer = 9 'Size W E TabIndex = 5 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 2 Left = 2640 MousePointer = 6 'Size NE SW TabIndex = 4 Top = 1080 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 1 Left = 2520 MousePointer = 7 'Size N S TabIndex = 3 Top = 600 Width = 90 End Begin VB.Label lblHandle BackColor = &H00FF0000& ForeColor = &H00FF0000& Height = 90 Index = 0 Left = 240 MousePointer = 8 'Size NW SE TabIndex = 2 Top = 120 Width = 90 End Begin VB.Image imgPic Appearance = 0 'Flat BorderStyle = 1 'Fixed Single Height = 2415 Index = 0 Left = 360 Picture = "Form1.frx":1026E Stretch = -1 'true Top = 240 Width = 1935 End End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Left = 1560 TabIndex = 0 Top = 6240 Width = 2295 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = false Attribute VB_Creatable = false Attribute VB_PredeclaredId = true Attribute VB_Exposed = false option Explicit Dim SelIndx as Integer private Sub PositionHandles(X1 as Integer, Y1 as Integer, X2 as Integer, Y2 as Integer, lblwid as Integer, lblhgt as Integer) Dim i as Integer lblHandle(0).Left = X1 - lblwid lblHandle(0).Top = Y1 - lblhgt lblHandle(1).Left = (X1 + X2 - lblwid) / 2 lblHandle(1).Top = Y1 - lblhgt lblHandle(2).Left = X2 lblHandle(2).Top = Y1 - lblhgt lblHandle(3).Left = X1 - lblwid lblHandle(3).Top = (Y1 + Y2 - lblhgt) / 2 lblHandle(4).Left = X2 lblHandle(4).Top = (Y1 + Y2 - lblhgt) / 2 lblHandle(5).Left = X1 - lblwid lblHandle(5).Top = Y2 lblHandle(6).Left = (X1 + X2 - lblwid) / 2 lblHandle(6).Top = Y2 lblHandle(7).Left = X2 lblHandle(7).Top = Y2 End Sub private Sub Form_Load() SelIndx = 0 Call PositionHandles(imgPic(SelIndx).Left, imgPic(SelIndx).Top, imgPic(SelIndx).Left + imgPic(SelIndx).Width, imgPic(SelIndx).Top + imgPic(SelIndx).Height, 90, 90) End Sub private Sub imgPic_Click(Index as Integer) Call PositionHandles(imgPic(Index).Left, imgPic(Index).Top, imgPic(Index).Left + imgPic(Index).Width, imgPic(Index).Top + imgPic(Index).Height, 90, 90) SelIndx = Index imgPic(SelIndx).ZOrder End Sub private Sub lblHandle_MouseDown(Index as Integer, Button as Integer, Shift as Integer, X as Single, Y as Single) lblHandle(Index).Tag = X & " " & Y End Sub private Sub lblHandle_MouseUp(Index as Integer, Button as Integer, Shift as Integer, X as Single, Y as Single) Dim DiffX as Integer, DiffY as Integer DiffX = X - Val(Left$(lblHandle(Index).Tag, 5)) DiffY = Y - Val(Right$(lblHandle(Index).Tag, 5)) Select Case Index Case 0: With imgPic(SelIndx) .Move .Left - DiffX, .Top - DiffY, .Width + DiffX, .Height + DiffY End With Case 1: With imgPic(SelIndx) .Move .Left, .Top - DiffY, .Width, .Height + DiffY End With Case 2: With imgPic(SelIndx) .Move .Left, .Top - DiffY, .Width + DiffX, .Height + DiffY End With Case 3: With imgPic(SelIndx) .Move .Left - DiffX, .Top, .Width + DiffX, .Height End With Case 4: With imgPic(SelIndx) .Move .Left, .Top, .Width + DiffX, .Height End With Case 5: With imgPic(SelIndx) .Move .Left - DiffX, .Top, .Width, .Height + DiffY End With Case 6: With imgPic(SelIndx) .Move .Left, .Top, .Width, .Height + DiffY End With Case 7: With imgPic(SelIndx) .Move .Left, .Top, .Width + DiffX, .Height + DiffY End With End Select Call PositionHandles(imgPic(SelIndx).Left, imgPic(SelIndx).Top, imgPic(SelIndx).Left + imgPic(SelIndx).Width, imgPic(SelIndx).Top + imgPic(SelIndx).Height, 90, 90) End Sub shree May 18th, 2001, 09:45 AM Sorry. There was some mistake in the code I posted before. Replace lblHandle_MouseUp() with the code below. Also, in imgPic_Click() use imgPic(SelIndx).ZOrder 1 if you want the sizing handles to show through at all times. private Sub lblHandle_MouseUp(Index as Integer, Button as Integer, Shift as Integer, X as Single, Y as Single) Dim DiffX as Integer, DiffY as Integer DiffX = X - Val(Left$(lblHandle(Index).Tag, 5)) DiffY = Y - Val(Right$(lblHandle(Index).Tag, 5)) Select Case Index Case 0: With imgPic(SelIndx) .Move .Left + DiffX, .Top + DiffY, .Width - DiffX, .Height - DiffY End With Case 1: With imgPic(SelIndx) .Move .Left, .Top + DiffY, .Width, .Height - DiffY End With Case 2: With imgPic(SelIndx) .Move .Left, .Top + DiffY, .Width + DiffX, .Height - DiffY End With Case 3: With imgPic(SelIndx) .Move .Left + DiffX, .Top, .Width - DiffX, .Height End With Case 4: With imgPic(SelIndx) .Move .Left, .Top, .Width + DiffX, .Height End With Case 5: With imgPic(SelIndx) .Move .Left + DiffX, .Top, .Width - DiffX, .Height + DiffY End With Case 6: With imgPic(SelIndx) .Move .Left, .Top, .Width, .Height + DiffY End With Case 7: With imgPic(SelIndx) .Move .Left, .Top, .Width + DiffX, .Height + DiffY End With End Select Call PositionHandles(imgPic(SelIndx).Left, imgPic(SelIndx).Top, imgPic(SelIndx).Left + imgPic(SelIndx).Width, imgPic(SelIndx).Top + imgPic(SelIndx).Height, 90, 90) End Sub codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |