The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


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 (

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.


  • Packages

    Per package documentation for Win32::GUI.

  • 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.

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.07 and later) this syntax will stop exporting anything. v1.07 will generate a warning that nothing is being exported. v1.08 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.


Documentation for Win32::GUI v1.14 created 01 Jun 2017

This document is autogenerated by the build process. Edits made here will be lost. Edit docs/GUI.pod instead.



For further support join the users mailing list from the website at There is a searchable list archive at


Copyright (c) 1997..2017 Aldo Calpini. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.