窗体疑难,急求!!!

cockroach4 2003-12-18 09:46:49
当在窗体上画出的图形比窗体大,如何才可以将大于窗体的图象显示出来?还有当改变窗体大小,比如最小化后再恢复窗体,原来的图形就会没有,这又该如何解决啊???
请各位帮忙解决,谢谢!!!
...全文
35 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2003-12-18
  • 打赏
  • 举报
回复
第一个问题:
你可以在窗体内加载一个picturebox,然后在这个picturebox上绘制图形,再利用滚动条滚动picturebox,从而打到你要的目的;这个比较简单,在此不再给出代码。

第二个问题:
你所问的也就是自绘图形的存储问题,思路如下:

建立一个bmp对象,将picturebox的image对象与之关联;绘制的时候在bmp对象上绘制,并同步picturebox对象,这样就可以解决你所说的问题2,并实现保存功能,部分代码如下:

'定义全局变量
Dim BMP As Bitmap '创建的bmp对象
Dim BMPGraphics As Graphics '获得bmp对象的绘制graphic对象

'===============
'在窗体初始化时创建bmp对象,并与picturebox对象关联

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'创建bmp对象,大小和picturebox对象一致
BMP = New Bitmap(PictureBox1.Width, PictureBox1.Height)
'获得bmp对象的graphics
BMPGraphics = Graphics.FromImage(BMP)
'将picturebox的Image对象与bmp对相关联
PictureBox1.Image = BMP
End Sub

'=============
'绘制图形时注意应该在BMPGraphics上绘制,并同步picturebox对象,如下例:

Private Sub DrawPic()
'绘制自绘图形
BMPGraphics.DrawLine(Pen, x1, y1, x2, y2)
'同步picturebox对象
PictureBox1.Refresh()
End Sub

'================
'存储图形时直接调用picturebox对象的image.save方法就可以了
Private Sub SavePic()
PictureBox1.Image.Save("d:\temp.bmp")
end sub
cockroach4 2003-12-18
  • 打赏
  • 举报
回复
怎么多出的图形还是不能在picturebox上显示啊?

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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