PictureBox 画直线 的问题!!

wenxjie 2007-12-08 02:08:59
基础不好出来的问题,请高手顺便讲讲原因!

我用的是VB。
一个窗体上有一个PictureBox 大小50*50,可随窗体拉大拉小

现在画在PictureBox 上画一条直线,长度100

问题出现,画的线只有50长,拉大窗体也是50长,如果把窗体拉大到80*80,然后再拉回50*50,这时候再画100长直线,直线却成了80长的

即使窗口只有50*50。

这是什么原因呢??我想一画出来,即使窗口小也是完整的线,郁闷啊, 请高手指点一下。还有我应该怎么设置刷新


//////////////////////////代码////////////////////////////////////Prv 是PictureBox的name
Private Sub Command1_Click()
Prv.AutoRedraw = True
Prv.Line (0, 0)-(1000, 300)
Prv.AutoRedraw = False

End Sub

Private Sub Form_Load()
On Error Resume Next
Command1.Left = 0
Command1.Top = 0
Prv.Left = 0
Prv.Top = Command1.Height
Prv.Width = Form1.ScaleWidth
Prv.Height = Form1.ScaleHeight - Prv.Top
End Sub

Private Sub Form_Resize()
On Error Resume Next
Command1.Left = 0
Command1.Top = 0

Prv.Left = 0
Prv.Top = Command1.Height
Prv.Width = Form1.ScaleWidth
Prv.Height = Form1.ScaleHeight - Prv.Top

End Sub
/////////////////////////////完////////////////////////////////////
...全文
40 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenxjie 2007-12-10
谢谢 zzyong00 和 vbman2003

原来要先判断大小。
回复
zzyong00 2007-12-08
TO wenxjie:是哪个意思,pictruebox会把超过它大小的线截掉,所以在画线前,先判断你要画线的长度是否超过了当当前pictruebox的大小,如超过,就增大pictruebox的大小,然后再画。你可以作为容器的pictruebox上加滚动条
回复
vbman2003 2007-12-08
改下你的代码,你看看是不是这个意思:




Dim X As Single
Dim Y As Single

Sub LetLine()
prv.Line (0, 0)-(X * prv.Width, Y * prv.Height)
End Sub

Private Sub Command1_Click()
call LetLine
End Sub

Private Sub Form_Load()
On Error Resume Next

Command1.Left = 0
Command1.Top = 0
prv.Left = 0
prv.Top = Command1.Height
prv.Width = Form1.ScaleWidth
prv.Height = Form1.ScaleHeight - prv.Top
prv.AutoRedraw = True
X = 1000 / prv.Width
Y = 300 / prv.Height
End Sub

Private Sub Form_Resize()
On Error Resume Next
Command1.Left = 0
Command1.Top = 0
prv.Left = 0
prv.Top = Command1.Height
prv.Width = Form1.ScaleWidth
prv.Height = Form1.ScaleHeight - prv.Top
prv.Cls
call LetLine
End Sub

回复
wenxjie 2007-12-08
zzyong00 你说的是不是要把里面的那个picturebox 要事先设的很大啊,要不然也是只能画到一半的,

谁能不能帮我把那个短代码修改一下
回复
zzyong00 2007-12-08
建议用两个pictrue控件嵌套,一个做容器,一个用来画图,这样就能解决你说的问题
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告