CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2

Thread: font size

  1. #1
    Join Date
    Feb 2000
    Posts
    440

    font size

    Hello,

    I have a control that has font property.

    I need to get the Font height in pixels. I remember that there were some way to do that but cannot remeber the function.

    Thanks in advance.

  2. #2
    Join Date
    Jul 2000
    Location
    Milano, Italy
    Posts
    7,726

    GetTextExtentPoint32

    From api-guide:
    The GetTextExtentPoint32 function computes the width and
    height of the specified string of text. This function supersedes the
    GetTextExtentPoint function.

    Requires Windows NT 3.5(1) or later; Requires Windows 95 or later

    Example:
    Code:
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal wOptions As Long, ByVal lpRect As Any, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As POINTAPI) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        'KPD-Team 1998
        'URL: http://www.allapi.net/
        'E-Mail: [email protected]
        Dim Pt As POINTAPI, mWnd As Long, WR As RECT, nDC As Long
        Dim TextSize As POINTAPI, CX As Long, CY As Long
        'Get the current cursor position
        GetCursorPos Pt
        'Get the window under the cursor
        mWnd = WindowFromPoint(Pt.X, Pt.Y)
        'Get the window's position
        GetWindowRect mWnd, WR
        'Get the window'zs device context
        nDC = GetWindowDC(mWnd)
        'Get the height and width of our text
        GetTextExtentPoint32 nDC, "Hello !", Len("Hello !"), TextSize
        For CX = 1 To WR.Right - WR.Left Step TextSize.X
            For CY = 1 To WR.Bottom - WR.Top Step TextSize.Y
                'Draw the text on the window
                ExtTextOut nDC, CX, CY, 0, ByVal 0&, "Hello !", Len("Hello !"), ByVal 0&
            Next
        Next
    End Sub
    Private Sub Form_Paint()
        Me.CurrentX = 0
        Me.CurrentY = 0
        Me.Print "Click on this form," + vbCrLf + "Hold the mouse button," + vbCrLf + "drag the mouse over another window," + vbCrLf + "release the mouse button" + vbCrLf + "and see what happens!"
    End Sub
    ...at present time, using mainly Net 4.0, Vs 2010



    Special thanks to Lothar "the Great" Haensler, Chris Eastwood , dr_Michael, ClearCode, Iouri and
    all the other wonderful people who made and make Codeguru a great place.
    Come back soon, you Gurus.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured