++ed by:
3 non-PAUSE users
Author image Robert May


Win32::GUI - Perl Win32 Graphical User Interface Extension


  use Win32::GUI();

Table of Contents

Due to the volume of Win32::GUI documentation it is split into a number of different sections. The documentation is sparse in some areas, and incomplete in others. Patches are welcome. The documentation does not try to be a tutorial for Windows GUI programming, although the tutorial should give enough information for a beginner to get started. For advanced features knowledge of the Win32 API is assumed, and further information can be found from Microsoft's online resources (http://msdn.microsoft.com/).

User Guide


    What Win32::GUI is, and how to get it installed.

  • Release Notes

    Release notes. Essential reading for old hands who want to know what has changed between versions.

  • Introduction

    A short welcome.

  • General Concepts

    An introduction to the basic Windows GUI concepts and how they relate to Win32::GUI

  • Tutorial

    A Tutorial. Essential reading for beginners: Creating your first Win32::GUI window and all the basics that you will need.

  • Frequently Asked Questions

    A (currently somewhat out of date) set of Frequently asked questions and answers.


  • Core Packages

    Per package documentation for the core Win32::GUI packages.

  • Common Events

    All the events that are common to every window.

  • Common Methods

    All the methods in the Win32::GUI package (and inherited by the other packages).

  • Options

    Options common to most package constructors.

Support Packages

Sample Code

There is a set of sample applications installed with Win32::GUI, that should be found in the .../Win32/GUI/demos/ directory under your library installtion root (by default for ActiveState perl this is at C:/Perl/site/lib/Win32/GUI/demos). There is a viewer/launcher application installed as well. Type win32-gui-demos at a command prompt.


Release of Win32::GUI up to and including v1.03 export a large list of constants into the callers namespace by default. This behaviour is changed in releases from v1.04 and onwards.

From v1.04 the support for constants is provided by Win32::GUI::Constants, and the prefered way of getting constants exported into your namespace should be:

  use Win32::GUI();   # Empty export list to prevent default exports
  use Win32::GUI::Constants qw( ... ) # explicitly list wanted constants

although, for backwards compatibility the following are also supported:

use Win32::GUI;

Will continue to export the same list of constants as earlier versions, but will generate a warning (under the use warnings; pragma or with the -w command line option to perl). In the future (v1.06 and later) this syntax will stop exporting anything. v1.06 will generate a warning that nothing is being exported. v1.07 will silently export nothing.

use Win32::GUI qw( ... );

Will exported the requested list of constants. The full syntax allowed by Win32::GUI::Constants may be used.

Please see the v1.04 Release Notes for further information on backwards compatability and making old scripts work.