Using Win32 functions in Visual FoxPro Image Gallery
Message and Message Queue
..msdn
BroadcastSystemMessage
GetQueueStatus
PeekMessage
PostMessage
PostQuitMessage
SendMessage
Code examples:
Accessing Adobe Reader 7.0 main menu from VFP application
Browsing Windows Known Folders (Special Folders)
Creating irregularly shaped FoxPro form using transparency color key
Detecting changes in connections to removable drives (VFP9)
Displaying hypertext links with the SysLink control (VFP9, Comctl32.dll)
Displaying the associated icons and descriptions for files and folders
Enumerating devices installed on the local machine
Extended MessageBox Class
How to change the name and the size of the font in the MessageBox dialog
How to control Adobe Reader 9.0 (SDI mode) from VFP application
How to disable the Windows Clipboard (VFP9)
How to drag a Form not using its Titlebar or Caption
How to draw custom Window Caption on FoxPro form
How to start the screen saver and how to find whether the screen saver is active
How to view icons stored in executable files (Icon Viewer) - II
How to view system icons for the classes installed on the local machine
Moving shortcut to a specified position on the Windows Desktop
Obtaining names and positions for shortcuts located on the Windows Desktop
Round FoxPro form
System Image List Viewer
Using Common Controls: the Header Control
Using Month Calendar Control (VFP9, Comctl32.dll)
Using Video Capture: displaying on FoxPro form frames and previewing video obtained from a digital camera
Using WM_COPYDATA for interprocess communication (VFP9)
Windows Shell Icons displayed and exported to ICO files (Vista)
Creating irregularly shaped FoxPro form using transparency color key

User rating: 10/10 (1 votes)
Rate this code sample:
  • ~
More code examples    Listed functions    Add comment     W32 Constants      Translate this page Printer friendly version of this code sample
Versions:
click to open
Before you begin:
Download this image file before testing the code sample:



The SetLayeredWindowAttributes function can be used to define the transparency color key for the top-level FoxPro form. That means all areas on the form with this color, including native windowless FoxPro controls, become transparent.

Such transparency is not only visual. The masked area is also transparent for the mouse events. Those events are directed to the windows below. It looks like the mouse transparency is provided only for bitmap images, not for gifs and jpegs.

Bluish background color on this image has value of RGB(0,121,197), which is passed as the transparency color key to the SetLayeredWindowAttributes function.

See also:
  • Round FoxPro form
  • How to draw a custom Window Caption on FoxPro form
  • A way to make a transparent area in a form -- a hole in the form
  • Semi-transparent form
  •  
      Members area. Log in to view this example.
     
      User name:
      Password:
     
     
      Forgot your password?
     
      Sign up for
    the Membership
     
     


    User rating: 10/10 (1 votes)
    Rate this code sample:
    • ~
    3039 bytes  
    Created: 2001-07-12 12:00:00  
    Modified: 2012-03-17 21:57:36  
    Visits in 7 days: 185  
    Listed functions:
    CreateRectRgn
    GetSystemMetrics
    GetWindowLong
    ReleaseCapture
    SendMessage
    SetLayeredWindowAttributes
    SetWindowLong
    SetWindowRgn
    Printer friendly API declarations
    My comment:
    It is important to have the background perfectly solid. Conversion to JPEG may create color artefacts because of the way the image is compressed with removing supposedly unnecessary part of it.

    Observe the difference between the masked bitmap image and originated from it masked JPEG image. As I mentioned above, only bitmap images provide mouse event transparency.


    Note that the Region API functions are still used to hide the frame of the form.

    This combined approach can create irregular forms effortlessly, if compared to using solely Region API calls. After all, truly irregular forms may not be easily shaped with a combination of regions.

    The SetLayeredWindowAttributes requires at least Win2K, and works with top-level forms only (ShowWindow=2). Also a twinkling black border may appear around the the form when it is being moved.

    * * *
    .NET WinForm implementation:

    Irregular Form .NET WinForm

    * * *
    .NET WPF implementation is as brief as it is simple. In this case the background of PNG image must be transparent.

    Irregular Form .NET WPF
    Word Index links for this example:
    Translate this page:
      Spanish    Portuguese    German    French    Italian  
    FreeTranslation.com offers instant, free translations of text or web pages.
    User Contributed Notes:
    There are no notes on this subject.


    Copyright © 2001-2013 News2News, Inc. Before reproducing or distributing any data from this site please ask for an approval from its owner. Unless otherwise specified, this page is for your personal and non-commercial use. The information on this page is presented AS IS, meaning that you may use it at your own risk. Microsoft Visual FoxPro and Windows are trade marks of Microsoft Corp. All other trademarks are the property of their respective owners. 

    Privacy policy
    Credits: PHP (4.4.9), an HTML-embedded scripting language, MySQL (5.1.55-log), the Open Source standard SQL database, AceHTML Freeware Version 4, freeware HTML Editor of choice.   Hosted by Korax Online Inc.
    Last Topics Visited (50.16.17.90)
    2.01 hrs.Example: 'Setting and retrieving the double-click time for the mouse'
     Example: 'GDI+: retrieving list of available image encoders and image decoders'
    3.14 hrs.Example: 'Pocket PC: custom RAPI class for operating with files and folders on mobile device'
    3.15 hrs.Function: 'HeapValidate'
    6.05 hrs.Example: 'Testing serial ports'
     Example: 'Vertical Label control'
    8.58 hrs.Example: 'Copying picture of the active form to the Clipboard using Enhanced Metafile API functions'
     Gallery
    Page 11
    11.84 hrs.Example: 'Extensible Storage Engine class library'
    12.36 hrs.Example: 'How to retrieve the number of print jobs queued for the printer'
    Google
    Advertise here!