Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
Simulating DOEVENTS
StrDup returns a pointer to the duplicate of a source VFP string
Winsock: how to retrieve the protocol information corresponding to a protocol number
How to check whether the system is 32-bit or 64-bit
Obtaining I/O counts for the current process
Retrieving the rectangle area where the mouse cursor is confined
Winsock: creating a socket that is bound to a specific service provider
Current System information
DiskFreeSpace class
Enhanced GetFont dialog
Using ActiveX control for adding a menu directly to a FoxPro MDI form
Creating a unique filename based on existing filename
Creating hash values for the list of names
Enumerating connections made to a shared resource for the local computer (WinNT only)
GDI+: enumerating fonts installed on the system
GetFileOwner - Get the owner of an NTFS file
Obtaining physical parameters for a drive: sectors, clusters, cylinders...
Using IsChild() for testing ThisForm.ShowWindow property
Accessing the list of Windows Recent Documents
Creating two-byte hashes for a list of URLs
Displaying all TCP connections for the local system
How to make the caption of a VFP application flashing in the Windows task bar
Retrieving graphic capabilities of your display
Retrieving statistics for the TCP protocol running on the local computer
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: 85  
    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)
    5.29 hrs.Function: 'GetDoubleClickTime'
    Function group: 'Mouse Input'
    Google
    Advertise here!