label 的文本是不是定长的???
解决方案 »
- 并口打印的问题
- 访问USB设备时出错,SetupDiEnumDeviceInterfaces总是返回0,请问是什么原因
- 大家帮忙介绍一本书好吗?
- 图象处理:如何实现选择其中一部分然后出现一虚线框,并可以拖动,放大等~~
- 写了on error resume next怎么还报错?
- 一个关于datareport分组标头的问题
- 在vb中如何将二进制的三个字节转换成整数?
- 急!!!请问如何在VB程序中动态建立ODBC数据源DSN得连接(与Access)
- 我该如何选择!
- 如何能够捕捉到访问光驱或软驱的事件,操作系统高手请进
- 关于数据表数据导入导出的问题...
- 请问如何将图片文件读出,而且还可以写到RTF文件或者数据库里面?我需要源码。
除非你自己去做字体库,或者是始量字体。
要么不要是label,而是把那几个字做成一张图片放在image里,image到是可以实现你说的那样让里面的图片(文本是肯定不可以的)适合自己的大小而改变。
因不能得到Hwnd
如用TextBox,或pictureBox模仿的话
可以用
DrawTextEx
Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, lpDrawTextParams As DRAWTEXTPARAMS) As Long
或
DrawText
Declare Function Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
自己画
我有一个办法可以做到你的这个效果。但那要用picturebox,和image。
程序如下:
With Picture1
.AutoRedraw = True
.Appearance = 0
.BorderStyle = 0
.Width = Label1.Width
.Height = Label1.Height
Picture1.Print Label1.Caption
Set .Picture = .Image
End With
With Image1
.Picture = Picture1.Picture
.Stretch = True
End With
MsgBox "现在,你就把这个image当作label来使用吧~随便改变它的大小,里面的字体也会岁image的大小而改变并适应它!"我想也是现在你所能做的唯一一个能实现“随变改变文子大小”的方法了吧~
祝你编程愉快。 ^_^
如果你以后还要读取picturebox中的文字的话(就如label中的Caption),那么你可以专门用一个变量来保存picturebox里的文字。这样做就是麻烦了点。
但应该也只有这个办法了。
当容器大小发生变化时调整LABEL控件数组的间距
当给控件的CAPTION赋值时动态装载LABEL控件数组
大体思路而已
timer1.interval = 100
with picture1
.cls
settextcharacterextra .hdc, i
picture1.print "midnight"
i = i + 1
if i >= 30 then i = 1
end with
end sub 当然,我这里用的是 timer,你如果觉得 cpu 占用率太高的话,就自己改嘛,比如说加在一个循环中,用系统时钟的 timer 值来控制间隔时间就行了。
最后,美化你的 picturebox,改一个好看的字体、醒目的颜色,甚至在循环中改变颜色和字体大小、用 step 值使它左右循环拉伸等等,随你怎么改! 怎么样?这个东东加到你的 about 窗体中去,一定很不错吧。我保证速度和资源消耗都要优于那种控制象素加减的方法。好了,今儿就说到这儿,俺去也!
Private i As LongPrivate Sub timer1_timer()
Timer1.Interval = 100
With Picture1
.Cls
SetTextCharacterExtra .hdc, i
Picture1.Print "midnight"
i = i + 1
If i >= 30 Then i = 1
End With
End Sub
结贴吧