大家帮帮忙啊。。。。。!!!!!VB技术问题,,,,跪求解决方案阿。。。。

hzunit8045 2006-09-22 10:49:56
VB的图片框picturebox的句柄HDC在我改变其大小时还是指向原始大小位置上去,
例如:我在图片框上画一个椭圆,在图片框为原来大小的2倍或是3倍的时候图片框的hdc还是指向1倍大小的时候。现在我想让这个hdc指向当前大小的的位置应该怎么做!!!!!!
...全文
179 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzunit8045 2006-09-27
  • 打赏
  • 举报
回复
而且即使我把autoredraw设为false时,还是出现那样的情况。这个hdc就真的不能随着我图片框的变化而变化吗?就没有别的办法实现了?我还试过把我要花的图先放在后面一个图片上然后把它从后面的图考到我所见的图片框,但是那样出现了别的一些问题,例如:有些画好的图不见了之类的。
hzunit8045 2006-09-27
  • 打赏
  • 举报
回复

HDC本来就不变?????但是在msdn中说:注意 hDC 属性值可以在程序运行中改变,因此不要将该值存储在变量中,应在每次需要时使用 hDC 属性。 AutoRedraw 属性能引起 hDC 属性改变。如果窗体或 窗体 PictureBox 容器的 AutoRedraw 属性设置为 True,hDC 将作为持久图形 的设备关联句柄(等价于 Image 属性)。当 AutoRedraw 属性为 False 时,hDC 属性是窗体窗口或 PictureBox 容器的真正的 hDC 值。程序运行中,不论 AutoRedraw 设置为何值,hDC 属性都可以改变。

如果 HasDC 属性设为 False, 新的设备上下文将由系统建立,并且 hDC 属性值在每次被调用时改变。
laviewpbt 2006-09-22
  • 打赏
  • 举报
回复
Dim Wration As Double
Dim Hration As Double
Private Sub Form_Load()

Wration = Picture1.Width / Me.Width
Hration = Picture1.Height / Me.Height
End Sub

Private 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 Sub

Private 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
laviewpbt 2006-09-22
  • 打赏
  • 举报
回复
HDC本来就不变。
zq972 2006-09-22
  • 打赏
  • 举报
回复
.........................
pigsanddogs 2006-09-22
  • 打赏
  • 举报
回复
哈哈哈
熊孩子开学喽 2006-09-22
  • 打赏
  • 举报
回复
二楼莫名其妙阿

1,488

社区成员

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

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