标题:傻瓜问题,怎么使想要输到图片框的字居中显示?
只看楼主
SnowFalling
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-25
 问题点数:0 回复次数:9 
傻瓜问题,怎么使想要输到图片框的字居中显示?

学习编程遇到点小问题,请教下各位大侠,小弟写了如下程序想让要输入的“你好”居中显示,结果字却显示在图片框右下角的位置,经过多次尝试,发现如果把picture1.fontsize=48这一行去掉就居中了,可是怎么能让字保持48号大小又居中显示呀?
Private Sub Form_Click()
Dim txth As Integer, txtw As Integer
Picture1.FontSize = 48
Picture1.ForeColor = RGB(255, 0, 0)
txth = TextHeight("你好")
txtw = TextWidth("你好")
Picture1.Print "你好"
Picture1.CurrentX = (Picture1.ScaleWidth - txtw) / 2
Picture1.CurrentY = (Picture1.ScaleHeight - txth) / 2
Picture1.Print "你好"
End Sub

搜索更多相关主题的帖子: 傻瓜 
2007-07-03 19:10
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 
我想,要默认值才能居中吧.(不感肯定,没看过这方面的资料)
如果你想实现上述居中的效果,不妨:
Picture1.CurrentX = (Picture1.ScaleWidth - txtw) / 2
Picture1.CurrentY = (Picture1.ScaleHeight - txth) / 2
将 2 改改,以达到你想要的效果.

Repeat  Life=Study;Until (death);
2007-07-04 13:55
疯狂石头
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-4
得分:0 
路过  看过
2007-07-04 20:57
taihongbo
Rank: 1
来 自:山东临沂
等 级:新手上路
帖 子:127
专家分:0
注 册:2004-11-15
得分:0 
不如直接用label

[此贴子已经被Joforn于2007-7-4 23:43:57编辑过]



淘宝 毛绒玩具 熊
jstbobo.taobao. com
久顺通啵啵玩具店
2007-07-04 22:35
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 

楼上做广告?


Repeat  Life=Study;Until (death);
2007-07-04 22:50
taihongbo
Rank: 1
来 自:山东临沂
等 级:新手上路
帖 子:127
专家分:0
注 册:2004-11-15
得分:0 

把Label 放在Picture1中,
Label 和Picture1 宽度一样设置字体还不简单。


淘宝 毛绒玩具 熊
jstbobo.taobao. com
久顺通啵啵玩具店
2007-07-04 22:54
荒芜心田
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-7
得分:0 

那你看LZ代码哪写错了呢?


学习→学习↑
2007-07-05 08:53
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

Private Sub Form_Click()
Dim txth As Single, txtw As Single
Picture1.FontSize = 48
Picture1.ForeColor = RGB(255, 0, 0)

Picture1.Print "你好"
Picture1.Scale (-10, -10)-(10, 10)
txth = Picture1.TextHeight("你好")
txtw = Picture1.TextWidth("你好")
Picture1.CurrentX = -txth / 2
Picture1.CurrentY = -txtw / 2
Picture1.Print "你好"
End Sub
你这样看看


2007-07-05 09:07
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 
Private Sub setPicText(InPic As PictureBox, InText As String)
Dim txth As Single, txtw As Single
InPic.AutoRedraw = True
InPic.Appearance = 0
InPic.BorderStyle = 0
InPic.BackColor = 100031
InPic.FontSize = 12
InPic.Font.Name = "宋体"
InPic.Font.Bold = True
InPic.ForeColor = vbBlack
Picture1.Scale (-10, -10)-(10, 10)
txth = Picture1.TextHeight(InText)
txtw = Picture1.TextWidth(InText)
Picture1.CurrentX = -txtw / 2
Picture1.CurrentY = -txth / 2
Picture1.Print InText
End Sub

2007-07-05 11:40
荒芜心田
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-7
得分:0 

Private Sub Form_Click()
Dim txth As Single, txtw As Single
Picture1.FontSize = 48
Picture1.ForeColor = RGB(255, 0, 0)
Picture1.Scale (-10, -10)-(10, 10)
txth = Picture1.TextHeight("你好")
txtw = Picture1.TextWidth("你好")
Picture1.CurrentX = -txth / 2
Picture1.CurrentY = -txtw / 2
Picture1.Print "你好"
End Sub
这样没问题,符合LZ的要求;楼上能给解释下吗?


学习→学习↑
2007-07-05 14:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-152420-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.725744 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved