Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
Obtaining a handle to the desktop associated with the calling thread
Retrieving list of Global Atom names
Retrieving System Error message strings
Wininet last error description
Adding printer to the list of supported printers for the specified server
Enumerating files opened on the network
How to empty the Recycle Bin
How to obtain Content-Type value for a file type from the System Registry
Converting path to original case
How to intercept window messages sent to VFP form
Number of clipboard formats available
Retrieving the state of your Internet connection
Using GetSysColor
Accessing examples contained in this reference from a VFP application
Pocket PC: enumerating mounted database volumes and databases in the Object Store
System Image List Viewer
Using FrameRgn for displaying system colors
CryptoAPI: retrieving list of providers
Deleting a file stored on the FTP server
Displaying OS Memory Status
Drawing icons associated with the VFP main window
FindText -- the hopeless and useless Common Dialog
Obtaining addresses for the adapters on the local computer (Win XP/2003/Vista)
Validating URLs using moniker functions
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: 76  
    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 (107.20.129.212)
    3.02 hrs.Example: 'Storing content of the Clipboard to a bitmap file'
     Example: 'How to extract frames from AVI files'
    7.53 hrs.Example: 'Confining Windows calculator inside the VFP main window'
     Function: 'GetPriorityClass'
    Function group: 'Process and Thread'
    9.24 hrs.Function: 'CeRapiInvoke'
    Function group: 'Remote Application Programming (RAPI)'
    17.58 hrs.Example: 'Retrieving graphic capabilities of default printer'
     Example: 'Enumerating ODBC Data Sources available on the local computer'
    18.06 hrs.Example: 'Using the CreateFile'
     Example: 'How to make a VFP form fading out when released (GDI+ version)'
    20.81 hrs.Example: 'Custom HttpRequest class (WinHTTP)'
    Google
    Advertise here!