form画面中的Caption设置问题

rae 2003-11-25 02:30:26
可能违反windows的一贯风格,但是如果想给form的Caption设置的文字做居中处理,可以添加空格,但最大化后又不会居中。有没有其他设置的方法,或者通过其他办法实现?谢谢大家乐:)
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rae 2003-11-25
  • 打赏
  • 举报
回复
谢谢各位
:)
victorycyz 2003-11-25
  • 打赏
  • 举报
回复
在form_resize里写代码。
demo001 2003-11-25
  • 打赏
  • 举报
回复
说实话

其实还是加空格,只不过坚持到底而已

感觉也仍然不是很好看


强烈期盼有更“美丽”的方法
demo001 2003-11-25
  • 打赏
  • 举报
回复
可以在Resize中添加代码

下面是一个小例子,偶抄的,偶自己试过了,可以用

具体的效果你可以调整

'Form1中的代码
Option Explicit
Dim oldsize As Long

Private Sub Form_Resize()
If Me.Width = oldsize Then 'if thewidth hasn't been changed
Exit Sub 'then do not mess with it
Else
CenterC Me
oldsize = Me.Width
End If
End Sub

Private Sub Form_Load()
CenterC Me
oldsize = Me.Width
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


'Module1中的代码
Option Explicit

Public Sub CenterC(frm As Form)
Dim SpcF As Integer 'How many spaces can fit
Dim clen As Integer 'caption length
Dim oldc As String 'old caption
Dim i As Integer 'not important
''remove any spaces at the end soft the caption
''very easy if you read it carefully
oldc = frm.Caption
Do While Left(oldc, 1) = Space(1)
DoEvents
oldc = Right(oldc, Len(oldc) - 1)
Loop
Do While Right(oldc, 1) = Space(1)
DoEvents
oldc = Left(oldc, Len(oldc) - 1)
Loop
clen = Len(oldc)
If InStr(oldc, "!") <> 0 Then
If InStr(oldc, "") <> 0 Then
clen = clen * 1.5
Else
clen = clen * 1.4
End If
Else
If InStr(oldc, "") <> 0 Then
clen = clen * 1.4
Else
clen = clen * 1.3
End If
End If
'''see how many characters can fit
SpcF = frm.Width / 61.2244 ''how many space can fit it the caption
SpcF = SpcF - clen 'How many spaces can fit-How much space the
''caption takes up
'''Now the trick y part
If SpcF > 1 Then
DoEvents 'speed up the program
frm.Caption = Space(Int(SpcF / 2)) + oldc
Else 'if the form is too small for spaces
frm.Caption = oldc
End If
End Sub

7,778

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧