Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
An alternative way of setting Form.Closable to False
Comparing file times
How to display advanced Task Dialog (Vista)
MapiSendMail class for Visual FoxPro application
Obtaining current Internet Explorer browser version and UserAgent
Downloading files from the FTP server using InternetReadFile
Enumerating raw input devices attached to the system (keyboard, mouse, human interface device)
Exporting DLL icon resources as .ICO files
How to enumerate sessions and processes on a specified terminal server
Retrieving the IP-to-physical address mapping table
Adding and deleting User Accounts
GDI+: creating scaled copy of image file
How to activate Windows Calculator
How to assemble an array of strings and pass it to external function
How to display a dialog box with which the user can add a data source (DSN)
How to view icons stored in executable files (Icon Viewer)
How to view system icons for the classes installed on the local machine
Reading parameters of streams in AVI file
Setting the volume label
GDI+: Scrolling through large image using the mouse
Obtaining list of tables stored in an ODBC Data Source
Retrieving list of available disk drives
Retrieving file information for the VFP executable running
Displaying hypertext links with the SysLink control (VFP9, Comctl32.dll)
An alternative way of setting Form.Closable to False

User rating: 0/10 (0 votes)
Rate this code sample:
  • ~
More code examples    Listed functions    Add comment     W32 Constants      Translate this page Printer friendly version of this code sample
Before you begin:
screen copy

Similar examples:
  • 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
  • Round FoxPro form
  • Semi-transparent form
  • PUBLIC oForm
    oForm = CREATEOBJECT("TestForm")
    oForm.Visible = .T.
    DEFINE CLASS TestForm As Form
        Caption="Closing button, ahem... disabled"
    PROCEDURE Activate
    PROCEDURE Resize
    PROCEDURE RegionOn
        LOCAL lnBtnWidth, lnBtnHeight, hRgnBase,;
            hRgnExcl, hWindow, x1,y1
        * or use SYSMETRIC
        lnBtnWidth = GetSystemMetrics(SM_CXSIZE) +;
            GetSystemMetrics(SM_CXFRAME) + 1
        lnBtnHeight = GetSystemMetrics(SM_CYSIZE) +;
            GetSystemMetrics(SM_CYFRAME) + 1
        hWindow = GetFocus()
    *    hWindow = ThisForm.HWnd
        THIS.GetFormRect(hWindow, @x1,@y1)
        hRgnBase = CreateRectRgn(0,0,x1,y1)
        hRgnExcl = CreateRectRgn(x1-lnBtnWidth,0,;
        = CombineRgn(hRgnBase, hRgnBase,;
            hRgnExcl, RGN_XOR)
        = SetWindowRgn(hWindow, hRgnBase, 1)
        = DeleteObject(hRgnBase)
        = DeleteObject(hRgnExcl)
    PROCEDURE GetFormRect(hWindow, x1,y1) 
        LOCAL lpRect
        lpRect = SPACE(16)
        = GetWindowRect(hWindow, @lpRect)
        x1 = THIS.buf2dword(SUBSTR(lpRect, 9,4)) -;
            THIS.buf2dword(SUBSTR(lpRect, 1,4))
        y1 = THIS.buf2dword(SUBSTR(lpRect, 13,4)) -;
            THIS.buf2dword(SUBSTR(lpRect, 5,4))
    FUNCTION buf2dword(cBuffer)
    RETURN Asc(SUBSTR(cBuffer, 1,1)) + ;
        BitLShift(Asc(SUBSTR(cBuffer, 2,1)), 8) +;
        BitLShift(Asc(SUBSTR(cBuffer, 3,1)), 16) +;
        BitLShift(Asc(SUBSTR(cBuffer, 4,1)), 24)
    PROCEDURE declare
        DECLARE INTEGER GetSystemMetrics IN user32;
            INTEGER nIndex
        DECLARE INTEGER DeleteObject IN gdi32;
            INTEGER hObject
        DECLARE INTEGER GetFocus IN user32
        DECLARE SetWindowRgn IN user32;
            INTEGER hWindow, INTEGER hRgn, SHORT bRedraw
        DECLARE SHORT GetWindowRect IN user32;
            INTEGER hWindow, STRING @lpRect
        DECLARE INTEGER CreateRectRgn IN gdi32;
            INTEGER nLeftRect, INTEGER nTopRect,;
            INTEGER nRightRect, INTEGER nBottomRect
        DECLARE INTEGER CombineRgn IN gdi32; 
            INTEGER hrgnDest, INTEGER hrgnSrc1,;
            INTEGER hrgnSrc2,;
            INTEGER fnCombineMode

    User rating: 0/10 (0 votes)
    Rate this code sample:
    • ~
    2151 bytes  
    Created: 2001-08-28 12:00:00  
    Modified: 2011-01-19 18:36:52  
    Visits in 7 days: 182  
    Listed functions:
    Printer friendly API declarations
    My comment:
    Visual FoxPro 8.0 Samples: Creating Irregularly Shaped Windows Sample.
    Word Index links for this example:
    Translate this page:
      Spanish    Portuguese    German    French    Italian offers instant, free translations of text or web pages.
    User Contributed Notes:
    There are no notes on this subject.

    Copyright 2001-2017 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.6.38), the Open Source standard SQL database, AceHTML Freeware Version 4, freeware HTML Editor of choice.   Hosted by Korax Online Inc.
    Last Topics Visited (
    20 sec.Function: 'CeRapiUninit'
    Function group: 'Remote Application Programming (RAPI)'
    39 sec.Function: 'AVIFileRelease'
    Function group: 'Windows Multimedia'
    58 sec.Function: 'recv'
    Function group: 'Windows Sockets 2 (Winsock)'
    1.28 min.Function: 'mixerClose'
    Function group: 'Windows Multimedia'
    1.6 min.Function: 'NetFileClose'
    Function group: 'Network Management'
    1.9 min.Function: 'NetGetDCName'
    Function group: 'Network Management'
    2.2 min.Function: 'CeGetSpecialFolderPath'
    Function group: 'Remote Application Programming (RAPI)'
    2.52 min.Function: 'CeOidGetInfoEx'
    Function group: 'Remote Application Programming (RAPI)'
    2.87 min.Function: 'AVIStreamGetFrameOpen'
    Function group: 'Windows Multimedia'
    3.18 min.Examples
    Advertise here!