Graphics Support in Visual FoxPro

Visual FoxPro 8.0 and later replaces native support for rendering Graphics Interchange Format (.gif) and Joint Photographic Electronic Group (.jpeg) formats with Graphics Device Interface+ (GDI+) for Microsoft Windows XP and later. Visual FoxPro supports all formats that GDI+ handles, including animated .gif files.

The following table lists the graphics formats that Visual FoxPro supports.

File extension File type name

.ani

Animated Cursor

.bmp

Bitmap

.cur

Cursor

.dib

Device Independent Bitmap

.emf

Windows Enhanced Metafile

.exif

Exchangeable Image File

.gif, .gfa

Graphics Interchange Format

.ico

Icon

.jpg, .jpeg, .jpe, .jfif

Joint Photographic Electronic Group, JPEG File Interchange Format

.png

Portable Networks Graphics

.tif, .tiff

Tag Image File Format

.wmf

Windows Metafile

Note

In Visual FoxPro, cursor, animated cursor, and icon files can be used as graphics files. For example, you can specify an animated cursor file for the Picture property for the Image control. However, the Image control displays the static representation of the cursor.

If Visual FoxPro does not recognize a particular version of a natively supported format such as a .bmp, .dib, .cur, .ani, or .ico, it passes them to GDI+ for rendering. Therefore, as new static file formats become supported in future versions of GDI+, Visual FoxPro can support them automatically.

With GDI+, Visual FoxPro includes the RotateFlip property on the Image control so you can rotate and invert, or flip, an image. For more information, see RotateFlip Property.

Note

GDI+ is installed with the Windows XP operating system and is required to run Visual FoxPro. Visual FoxPro includes a merge module for redistribution with custom applications running on Windows 98, Windows Me, and Windows 2000 platforms.

Visual FoxPro provides graphics support in the following three areas:

  • Language

  • Controls and objects

  • User interface

Language

You can use the GETPICT( ) function to access the Visual FoxPro dialog that provides access to valid file formats. You also can access graphics through properties in the controls and objects described here.

Controls and Objects

The following table lists Visual FoxPro controls and objects with properties for which you can specify graphics files. You can now specify .gif, .jpg, .cur, .ani, and .ico graphic files for these properties in addition to the .bmp and .dib graphic files supported in previous versions of Visual FoxPro.

Control or object Properties

CheckBox control

DisabledPicture DownPicture Picture

CommandButton control

DisabledPicture DownPicture Picture

ComboBox control

Picture

Container object

Picture

Control object

Picture

Custom object

Picture

Form object

Picture

Image control*

Picture

ListBox control

Picture

OptionButton control

DisabledPicture DownPicture Picture

Page object

Picture

_SCREEN system variable

Picture

* Visual FoxPro supports animated .gif files only for the Picture property of an Image control.

User Interface

You can choose graphics files by using the Open dialog box in several Visual FoxPro designers. The Open dialog box for the following designers includes all valid graphic file formats.

Form Designer and Class Designer

You can find and select an image by opening the Open dialog box in the Form and Class designers for a property in those controls that support graphics files.

To select an image in the Form and Class designers

  • In the Properties window, double-click the Picture property.

Visual FoxPro displays the Open dialog box for you to find and select an image.

Project Manager

You can find, select, and add a graphics file to a project in the Project Manager.

To add a graphics file to a project

  • In the Project Manager, select Other Files in the All or Other tabs and click Add.

Visual FoxPro displays the Open dialog box for you to find and select an image.

GDI+ Image Support

GDI+ is a class-based application programming interface (API) for C/C++ programmers. It enables applications to use graphics and formatted text on both the video display and the printer. Applications based on the Microsoft Win32 API do not access graphics hardware directly. Instead, GDI+ interacts with device drivers on behalf of applications. GDI+ is also supported by the 64-bit Windows operating system.

GDI+ can be used in all Windows-based applications. GDI+ is included in Microsoft Windows XP and Windows Server 2003 operating systems. GDI+ is required and available as a redistributable for Visual FoxPro applications that run on the Windows 2000, Windows Millennium Edition, and Windows 98 operating systems. To download the most recent distributable, visit the Microsoft Windows Platform SDK Web site at https://www.microsoft.com/msdownload/platformsdk/sdkupdate/ or the Microsoft Download Center Web site at https://www.microsoft.com/downloads/.

Visual FoxPro might include both VFP9R.dll and VFP9T.dll run-time libraries. The GDIPlus.dll file must be present in the system directory of the user's computer.

Animated .gif Image Support

Animated .gif files are a popular variety of the .gif file format. They use the same file extension (.gif) and contain specific image frames that cycle through to produce an animated effect. The animated .gif file contains the number of times the .gif file cycles through before stopping. Visual FoxPro supports animated .gif files as follows:

  • Visual FoxPro supports animated .gif files only for the Picture property in the Image control.

  • Animated .gif files are displayed at both design and run time.

  • Visual FoxPro displays only the first frame of an animated .gif file when it appears anywhere else but the Image control.

  • Visual FoxPro cycles through an animated .gif file based only on its internal loop count setting.

  • Visual FoxPro pauses between animation loops for one second.

  • If the size or location of the Image control changes at run time while an image animation plays, Visual FoxPro resets to the first frame and continues.

  • Visual FoxPro draws the .gif image size as specified by the .gif file author, not the Image control. Visual FoxPro does not clip or stretch the image.

  • During animations, the entire image or part of it is erased so that the next frame can be redrawn. Visual FoxPro minimizes unnecessary redrawing to avoid flickering. If the image position is moved, for example, the control or its container is moved, the entire image needs to be redrawn.

  • Because Visual FoxPro internally stores a single representation of a particular image as an off-screen bitmap, multiple Image controls using the same animated .gif file are always synchronized together. If you want the animations of the same image to behave differently for each Image control, you should create a copy of each animated .gif file and rename each one.

  • The author of animated .gif files can specify the amount of time between frames. This amount of time can differ between each frame. Therefore, it is possible for animated .gif files to have excessively long delays between frames.

  • If you use an animated .gif file in a control other than an Image control, animation of the image does not play. However, if you later use the image in an Image control, the image animates only if you first issue a CLEAR...RESOURCES command. This occurs because the image is already stored in memory, and the animation attribute is being ignored when the image is rendered in a non-image control. You must use CLEAR...RESOURCES to reload the image into memory.

See Also

Tasks

How to: Create Access and Assign Methods

Reference

Picture Property (Visual FoxPro)
Image Control (Visual FoxPro)
CLEAR Commands

Concepts

Access and Assign Methods

Other Resources

General Reference