Dim Wration As Double Dim Hration As Double Private Sub Form_Load()Wration = Picture1.Width / Me.Width Hration = Picture1.Height / Me.Height End SubPrivate Sub Form_Resize() Picture1.Width = Me.Width * Wration Picture1.Height = Me.Height * Hration Picture1.AutoRedraw = True Picture1.Scale (0, 100)-(100, 0) Draw Picture1 End SubPrivate Sub Draw(pic As PictureBox) pic.Cls pic.Circle (50, 50), 4, vbRed pic.Line (20, 20)-(80, 70), vbGreen, B For i = 1 To 100 pic.PSet (i, Sin(i / 10) * 50 + 50), vbBlue Next End Sub
Dim Hration As Double
Private Sub Form_Load()Wration = Picture1.Width / Me.Width
Hration = Picture1.Height / Me.Height
End SubPrivate Sub Form_Resize()
Picture1.Width = Me.Width * Wration
Picture1.Height = Me.Height * Hration
Picture1.AutoRedraw = True
Picture1.Scale (0, 100)-(100, 0)
Draw Picture1
End SubPrivate Sub Draw(pic As PictureBox)
pic.Cls
pic.Circle (50, 50), 4, vbRed
pic.Line (20, 20)-(80, 70), vbGreen, B
For i = 1 To 100
pic.PSet (i, Sin(i / 10) * 50 + 50), vbBlue
Next
End Sub
HDC本来就不变?????但是在msdn中说:注意 hDC 属性值可以在程序运行中改变,因此不要将该值存储在变量中,应在每次需要时使用 hDC 属性。 AutoRedraw 属性能引起 hDC 属性改变。如果窗体或 窗体 PictureBox 容器的 AutoRedraw 属性设置为 True,hDC 将作为持久图形 的设备关联句柄(等价于 Image 属性)。当 AutoRedraw 属性为 False 时,hDC 属性是窗体窗口或 PictureBox 容器的真正的 hDC 值。程序运行中,不论 AutoRedraw 设置为何值,hDC 属性都可以改变。如果 HasDC 属性设为 False, 新的设备上下文将由系统建立,并且 hDC 属性值在每次被调用时改变。