Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
How to find which fonts Windows uses for drawing captions, menus and message boxes
Retrieving current settings for an ODBC connection
Retrieving list of files on the FTP directory
Using the MessageBox Win32 function
Enumerating global and local group accounts on a server (WinNT/XP/2K)
How to create transparent areas inside a form -- punching holes in the form
How to generate GUID values
Scanning a hierarchy of child windows down from the Windows Desktop
Storing screen shot of a form to enhanced metafile (*.emf)
Using custom Simple MapiSendMail class
How to make the caption of a VFP application flashing in the Windows task bar
How to print picture stored in enhanced-format metafile (*.emf)
Locking mouse and keyboard input for the VFP application
Monitoring changes in a directory
Reading security permissions for NTFS files and folders
Displaying standard progress dialog box when copying files
Listing child windows for the Windows desktop
Obtaining names and positions for shortcuts located on the Windows Desktop
Storing registration key in the resources of an executable file
Creating a unique filename based on existing filename
Dial the Net Automatically
Finding out if the current user is the Guest account
Finding the path to the VFP executable running
How to build UDP responder
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
    #DEFINE SM_CXSIZE 30
    #DEFINE SM_CYSIZE 31
    #DEFINE SM_CXFRAME 32 
    #DEFINE SM_CYFRAME 33 
    #DEFINE RGN_XOR 3
     
        Width=500
        Height=300
        AutoCenter=.T.
        Caption="Closing button, ahem... disabled"
     
    PROCEDURE Load
        THIS.declare
     
    PROCEDURE Activate
        THIS.RegionOn
     
    PROCEDURE Resize
        THIS.RegionOn
     
    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,;
            x1,lnBtnHeight)
     
        = 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
     
    ENDDEFINE
     

    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: 75  
    Listed functions:
    CombineRgn
    CreateRectRgn
    DeleteObject
    GetFocus
    GetSystemMetrics
    GetWindowRect
    SetWindowRgn
    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  
    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.17.109.248)
    2.68 hrs.Example: 'Retrieving the state of your Internet connection'
     Function: 'CreatePipe'
    8 hrs.Example: 'The original LoadPicture() function in VFP returns valid handles to bitmaps, icons, cursors, and metafiles'
    10.85 hrs.Links
    Page 2
    23.29 hrs.Function: 'CreateEvent'
    Function group: 'Synchronization'
     Example: 'How to enumerate, add and delete shares on the local computer (WinNT/XP)'
    1 day(s)Example: 'Custom GDI+ class'
     Function: 'NetWkstaGetInfo'
    Function group: 'Network Management'
     Example: 'Shortcut Menu Class'
     
    Function group: 'Monitor Configuration (Vista)'
    Google
    Advertise here!