Определение дилины символьной строки в пикселах для заданного контекста устройства (hDC) - VB

Узнай цену своей работы

Формулировка задачи:

вопрос такой: как? пробовал использовать функции GetTextMetrics и GetTextExtentPoint32 и у меня не получилось первая не заполняла структуру, а вторая тупо возвращала 0 (ноль) Я, вероятно, сошел с ума. Хелп Зер Бест, если кто пришлет рабочий пример с использованием одной из этих функций. Заранее спасибо.

Решение задачи: «Определение дилины символьной строки в пикселах для заданного контекста устройства (hDC)»

textual
Листинг программы
Private Type POINTAPI
    X As Long
    Y As Long
End Type
 
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_Load()
    With Text1
        .Text = 'Thank you, MSDN.'
        .SelStart = 0
        .SelLength = Len(.Text)
    End With
End Sub
 
Private Sub Text1_Change()
    Dim udtTextSize As POINTAPI
    Dim strText As String
    Dim hDC As Long
    
    strText = Text1.Text
    
    hDC = GetWindowDC(Text1.hwnd)
    
    GetTextExtentPoint32 hDC, strText, Len(strText), udtTextSize
    
    Me.Caption = 'Длина строки в пикселах:  ' & udtTextSize.X
End Sub

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы