我用下列方法计算字体宽度,但改变DPI设置(即,显示器/设置/高级/DPI设置:大尺寸(120DPI))时,计算结果会变化,请问大家有没有好的办法。
Type Size     '以下6行为字符宽度计算用
    cx As Long
    cy As Long
End Type
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As Size) As Long
    '具体过程:
    Dim hdc5 As Long
    Dim sz As Size    SS = Me.文本框.Text
    N = Len(SS)
    hdc5 = GetDC(Screen.ActiveForm.hWnd)
    Call GetTextExtentPoint32(hdc5, SS, N, sz) '    所求宽度 = sz.cx