stnic
asked on
resolution problem 100 Points
Hi all, I have a form with a graphic image in the middle. The form's properties is set to "maximized". On my monitor the gragphic is centered very nice at 640 X 480. When I view the image on a friends computer with a higher resolution the image shrinks instead of staying in the middle of the screen.
Is there code to force the image on the form to stay centered at different resolutions on other computers ? It is important to have the image on the form remain centered and the form itself to stay maximized.
Any working code would be appreciated for VB 5.0
Thanks
stnic
Is there code to force the image on the form to stay centered at different resolutions on other computers ? It is important to have the image on the form remain centered and the form itself to stay maximized.
Any working code would be appreciated for VB 5.0
Thanks
stnic
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
You can use this code:
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then Exit Sub
With Image1
.Top = (Me.ScaleHeight / 2) - (.Height / 2)
.Left = (Me.ScaleWidth / 2) - (.Width / 2)
End With
End Sub
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then Exit Sub
With Image1
.Top = (Me.ScaleHeight / 2) - (.Height / 2)
.Left = (Me.ScaleWidth / 2) - (.Width / 2)
End With
End Sub
hi stnic,
try this code.it should use whatever resolution the monitor has.
leo
Private Sub Form_Load()
WindowState = 2
End Sub
Private Sub Form_Click()
scw = Form1.ScaleWidth
sch = Form1.ScaleHeight
pw = Picture1.Width
ph = Picture1.Height
Picture1.Left = (scw - pw) / 2
Picture1.Top = (sch - ph) / 2
End Sub
try this code.it should use whatever resolution the monitor has.
leo
Private Sub Form_Load()
WindowState = 2
End Sub
Private Sub Form_Click()
scw = Form1.ScaleWidth
sch = Form1.ScaleHeight
pw = Picture1.Width
ph = Picture1.Height
Picture1.Left = (scw - pw) / 2
Picture1.Top = (sch - ph) / 2
End Sub
Set the StartUpPosition of the Form in design mode to vbStartUpScreen.
To clarify:
vbStartUpScreen=2 and it centers the form on the whole screen.
vbStartUpScreen=2 and it centers the form on the whole screen.
hi again,
ha ha ha ...3 or 4 good answers while I was in VB.
anthony_glenwright's is a very neat solution.
I keep forgetting "Me.xxxxx".
leo
ha ha ha ...3 or 4 good answers while I was in VB.
anthony_glenwright's is a very neat solution.
I keep forgetting "Me.xxxxx".
leo
The easy questions always seem very popular (-:
ASKER
Hi All, I will test all of your responses tonight and then place the program on my friends computer, which ever one works will be posted tomorrow! Thanks to all who participated !
stnic
stnic
anthony's got the right of it, but with one small change:
Picture1.Move (Me.ScaleWidth - Picture1.Width) / 2, (Me.ScaleHeight - Picture1.Height) / 2
Picture1.Move (Me.ScaleWidth - Picture1.Width) / 2, (Me.ScaleHeight - Picture1.Height) / 2
suggest you use Image control show picture, and set property Stretch = True, now the picture will fill all the Image area, just need code:
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then Exit Sub
Image1.Move 0, 0, ScaleHeight, ScaleWidth
End Sub
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then Exit Sub
Image1.Move 0, 0, ScaleHeight, ScaleWidth
End Sub
kd makes a good point
width vs scalewidth for the picture box.
leo
width vs scalewidth for the picture box.
leo
ASKER
Hi All, what if you have more than one image in a group and they all have to stay centered with the form maximized on monitors with a higher resolution than 640 X 480 ?
Thanks
stnic
Thanks
stnic
What do you mean by more than one image in a group?
ASKER
Hi anthony_glenwright, what i mean is six images (like the first six letters of the alphabet). Each image is placed about an inch from the other in two rows (three per row) forming the center of the screen.
If i had six images how would I change your code to make sure all of the images were centered ? Or does the Picture1 in your code take care of all of this ?
I'm asking because I have no way of testing this until later today at my friends house. I am stuck with this video card that stays on 640 X 480.
Thanks
stnic
If i had six images how would I change your code to make sure all of the images were centered ? Or does the Picture1 in your code take care of all of this ?
I'm asking because I have no way of testing this until later today at my friends house. I am stuck with this video card that stays on 640 X 480.
Thanks
stnic
In that case, cheat:
Put the six image controls into a picture box with all the correct spacing (and centered in said picbox!). Turn the picbox's border off. Now use the centering code for Picture1.
Put the six image controls into a picture box with all the correct spacing (and centered in said picbox!). Turn the picbox's border off. Now use the centering code for Picture1.
ASKER
Hi all, Thanks to everyone who commented ! I decided to award the points to anthony_glenwright not only was his the first comment, his code worked for me :)
Until next time!
stnic
Until next time!
stnic
Private Sub Form_Resize()
Picture1.Move (Form1.Width - Picture1.Width) / 2, (Form1.Height - Picture1.Height) / 2
End Sub