PictureSizeMode Property

Applies To

Frame control, Image control, Page object, UserForm object.

Description

Specifies how to display the background picture on a control, form, or page.

Syntax

object.PictureSizeMode [= fmPictureSizeMode]

The PictureSizeMode property syntax has these parts:

Part

Description

object

Required. A valid object.

fmPictureSizeMode

Optional. The action to take if the picture and the form or page that contains it are not the same size.


Settings

The settings for fmPictureSizeMode are:

Constant

Value

Description

fmPictureSizeModeClip

0

Crops any part of the picture that is larger than the form or page (default).

fmPictureSizeModeStretch

1

Stretches the picture to fill the form or page. This setting distorts the picture in either the horizontal or vertical direction.

fmPictureSizeModeZoom

3

Enlarges the picture, but does not distort the picture in either the horizontal or vertical direction.


Remarks

The fmPictureSizeModeClip setting indicates you want to show the picture in its original size and scale. If the form or page is smaller than the picture, this setting only shows the part of the picture that fits within the form or page.

The fmPictureSizeModeStretch and fmPictureSizeModeZoom settings both enlarge the image, but fmPictureSizeModeStretch causes distortion. The fmPictureSizeModeStretch setting enlarges the image horizontally and vertically until the image reaches the corresponding edges of the container or control. The fmPictureSizeModeZoom setting enlarges the image until it reaches either the horizontal or vertical edges of the container or control. If the image reaches the horizontal edges first, any remaining distance to the vertical edges remains blank. If it reaches the vertical edges first, any remaining distance to the horizontal edges remains blank.

See Also

Picture property, PictureAlignment property, PicturePosition property, PictureTiling property.

Example

The following example uses the PictureSizeMode property to demonstrate three display options for a picture: showing the picture as is, changing the size of the picture while maintaining its original proportions, and stretching the picture to fill a space.

To use this example, copy this sample code to the Declarations portion of a form. Make sure that the form contains:

  • A Frame named Frame1.
  • A SpinButton named SpinButton1.
  • A TextBox named TextBox1.
  • Three OptionButton controls named OptionButton1 through OptionButton3.
Note This example is an enhanced version of the PictureAlignment property example, as the two properties complement each other. The enhancements are three OptionButton event subroutines that control whether the image is cropped, zoomed, or stretched.

Dim Alignments(5) As String

Private Sub UserForm_Initialize()
    Alignments(0) = "0 - Top Left"
    Alignments(1) = "1 - Top Right"
    Alignments(2) = "2 - Center"
    Alignments(3) = "3 - Bottom Left"
    Alignments(4) = "4 - Bottom Right"
    
    'Specify a bitmap that exists on your system
    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")
    
    SpinButton1.Min = 0
    SpinButton1.Max = 4
    SpinButton1.Value = 0
    
    TextBox1.Text = Alignments(0)
    Frame1.PictureAlignment = SpinButton1.Value
    
    OptionButton1.Caption = "Crop"
    OptionButton1.Value = True
    OptionButton2.Caption = "Stretch"
    OptionButton3.Caption = "Zoom"
End Sub

Private Sub OptionButton1_Click()
    If OptionButton1.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeClip
    End If
End Sub

Private Sub OptionButton2_Click()
    If OptionButton2.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeStretch
    End If
End Sub

Private Sub OptionButton3_Click()
    If OptionButton3.Value = True Then
        Frame1.PictureSizeMode = fmPictureSizeModeZoom
    End If
End Sub

Private Sub SpinButton1_Change()
    TextBox1.Text = Alignments(SpinButton1.Value)
    Frame1.PictureAlignment = SpinButton1.Value
End Sub

Private Sub TextBox1_Change()
    Select Case TextBox1.Text
    Case "0"
        TextBox1.Text = Alignments(0)
        Frame1.PictureAlignment = 0
    Case "1"
        TextBox1.Text = Alignments(1)
        Frame1.PictureAlignment = 1
    Case "2"
        TextBox1.Text = Alignments(2)
        Frame1.PictureAlignment = 2
    Case "3"
        TextBox1.Text = Alignments(3)
        Frame1.PictureAlignment = 3
    Case "4"
        TextBox1.Text = Alignments(4)
        Frame1.PictureAlignment = 4
    Case Else
        TextBox1.Text = Alignments(SpinButton1.Value)
        Frame1.PictureAlignment = SpinButton1.Value
    End Select
End Sub