我用下列方法计算字体宽度,但改变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
这是网上看到的贴子.为什么我改了字体结果sz.cx
的值没有变化呢?
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
这是网上看到的贴子.为什么我改了字体结果sz.cx
的值没有变化呢?
解决方案 »
- 关于打印条形码的问题?谢谢!
- 求教datareport的基础问题:
- 如何读出DataGrid中数据?
- 使用winsock控件的一个问题,望高手指点!
- 如何工程源代码转移到另外一台机器上,用VB打开继续编辑?
- 关于 XP 风格菜单:我用了OfficeXPmenu这个控件,问题是:我不能改变托盘程序右键菜单的风格??
- Timer 设置触发时间最长为 65,000 毫秒,我想延长怎么作?
- 如何判断DirListBox中的文件夹已经被删了?
- 这段代码什么意思?ASP(VBscript)
- 100分大放送,如何将按钮字体颜色改变?
- 谁有直接利用DDE API的完整的例程?
- 麻烦帮我看下这个查询到底哪有问题
用个LABEL控件,AUTOSIZE属性设为TRUE,
然后
LABEL1.CAPTION="你要显示的东东"
MSGBOX LABEL1.WIDTH搞定了不?