Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
Deleting a file stored on the FTP server
How to download a file from HTTP server using URL Monikers functions
Obtaining a handle to the desktop associated with the calling thread
Retrieving long values associated with the class of the VFP window
Retrieving the priority class for the current process
Retrieving top-child window for the VFP form
Uploading file to the FTP server using InternetWriteFile
URL: splitting into its component parts
Displaying Windows shell folders in TreeView control with Visual FoxPro FLL
How to find when the application started
MapiSendMail class for Visual FoxPro application
Using FrameRgn for displaying system colors
Yet another modal dialog: now HTML-based
Converting a decimal string to an integer
Converting long file names to the short format and vice versa
GDI+: Color Transparency
GDI+: cropping images
How to position the GETPRINTER() dialog
How to start the screen saver and how to find whether the screen saver is active
Loading a string resource from an executable file
Testing an ODBC connection for supporting specific functionality
URL: converting unsafe characters and spaces into escape sequences
Winsock: changing the byte ordering
Copying strings through the global memory block
Reading metrics for the currently selected font

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
 
DO decl
 
*|typedef struct tagTEXTMETRIC { 
*|  LONG tmHeight;             0:4
*|  LONG tmAscent;             4:4
*|  LONG tmDescent;            8:4
*|  LONG tmInternalLeading;    12:4
*|  LONG tmExternalLeading;    16:4
*|  LONG tmAveCharWidth;       20:4
*|  LONG tmMaxCharWidth;       24:4
*|  LONG tmWeight;             28:4
*|  LONG tmOverhang;           32:4
*|  LONG tmDigitizedAspectX;   36:4
*|  LONG tmDigitizedAspectY;   40:4
*|  TCHAR tmFirstChar;         44:1
*|  TCHAR tmLastChar;          45:1
*|  TCHAR tmDefaultChar;       46:1
*|  TCHAR tmBreakChar;         47:1
*|  BYTE tmItalic;             48:1
*|  BYTE tmUnderlined;         49:1
*|  BYTE tmStruckOut;          50:1
*|  BYTE tmPitchAndFamily;     51:1
*|  BYTE tmCharSet;            52:1
*|} TEXTMETRIC, *PTEXTMETRIC;
 
    LOCAL lcBuffer, hWindow, hDC
    lcBuffer = Repli(Chr(0), 250)
    hWindow = GetActiveWindow()
    hDC = GetWindowDC(hWindow)
 
    = GetTextMetrics(hDC, @lcBuffer)
 
    = _add("Height (ascent + descent)",;
        b2d(SUBS(lcBuffer, 1,4)))
 
    = _add("Ascent (units above the base line)";
         b2d(SUBS(lcBuffer, 5,4)))
 
    = _add("Descent (units below the base line)",;
        b2d(SUBS(lcBuffer, 9,4)))
 
    = _add("Leading inside the bounds...",;
        b2d(SUBS(lcBuffer, 13,4)))
 
    = _add("Extra leading added between rows",;
        b2d(SUBS(lcBuffer, 17,4)))
 
    = _add("Avg width of characters",;
        b2d(SUBS(lcBuffer, 21,4)))
 
    = _add("Width of the widest character",;
        b2d(SUBS(lcBuffer, 25,4)))
 
    = _add("Weight of the font",;
        b2d(SUBS(lcBuffer, 29,4)))
 
    = _add("Extra width per string", b2d(SUBS(lcBuffer, 33,4)))
 
    = _add("Optimal horiz aspect", b2d(SUBS(lcBuffer, 37,4)))
 
    = _add("Optimal vert aspect", b2d(SUBS(lcBuffer, 41,4)))
 
    = _add("First character defined", Asc(SUBS(lcBuffer, 45,1)))
 
    = _add("Last character defined", Asc(SUBS(lcBuffer, 46,1)))
 
    = _add("Substitute if char not found", Asc(SUBS(lcBuffer, 47,1)))
 
    = _add("Char for word breaks", Asc(SUBS(lcBuffer, 48,1)))
 
    = _add("Italic", Asc(SUBS(lcBuffer, 49,1)))
    = _add("Underlined", Asc(SUBS(lcBuffer, 50,1)))
    = _add("Strikeout", Asc(SUBS(lcBuffer, 51,1)))
 
    = _add("Font pitch", BitAnd(15,Asc(SUBS(lcBuffer, 52,1))))
    = _add("Font family", BitAnd(240,Asc(SUBS(lcBuffer, 52,1))))
 
    = _add("Font Character Set", Asc(SUBS(lcBuffer, 53,1)))
 
    ReleaseDC(hWindow, hDC)
    GO TOP
    BROW NORMAL NOWAIT
* end of main
 
PROCEDURE _add(lcName, lnValue)
    IF Not USED("csResult")
        CREATE CURSOR csResult (paramname C(35), paramvalue C(50))
    ENDIF
    INSERT INTO csResult VALUES (m.lcName, LTRIM(STR(m.lnValue)))
 
PROCEDURE decl
    DECLARE INTEGER GetActiveWindow IN user32
    DECLARE INTEGER GetWindowDC IN user32 INTEGER hwnd
 
    DECLARE INTEGER ReleaseDC IN user32 ;
        INTEGER hwnd,  INTEGER hdc
 
    DECLARE INTEGER GetTextMetrics IN gdi32;
        INTEGER hdc, STRING @lptm
 
FUNCTION  b2d(lcBuffer)
RETURN Asc(SUBS(lcBuffer, 1,1)) + ;
    BitLShift(Asc(SUBS(lcBuffer, 2,1)),  8) +;
    BitLShift(Asc(SUBS(lcBuffer, 3,1)), 16) +;
    BitLShift(Asc(SUBS(lcBuffer, 4,1)), 24)
 
 
 

User rating: 0/10 (0 votes)
Rate this code sample:
  • ~
3076 bytes  
Created: 2002-11-02 14:21:03  
Modified: 2007-05-04 08:58:10  
Visits in 7 days: 82  
Listed functions:
GetActiveWindow
GetTextMetrics
GetWindowDC
ReleaseDC
Printer friendly API declarations
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)
4 sec.Example: 'Obtaining heap handles and enumerating memory blocks for the current VFP session (WinNT only)'
1.5 hrs.Function: 'getsockopt'
7.21 hrs.Example: 'Scanning the hierarchy of child windows down from the main VFP window'
 Example: 'Retrieving local computer and user names'
 Function: 'SQLGetInfo'
18.84 hrs.Function: 'CreateCompatibleBitmap'
 Function: 'AppendMenu'
20.36 hrs.Function: 'UrlHash'
 Example: 'Simple MAPI: how to resolve a name to unique address list entry'
21.84 hrs.Function: 'RealGetWindowClass'
Function group: 'Window'
Google
Advertise here!