picturebox上画图用api怎么实现

Sunny21 2005-08-12 04:44:18
程序如下,执行一点反应都没有
Private Structure POINTAPI
Public x As Integer
Public y As Integer
End Structure

Private Sub DrawPictureBox2()
Dim i As Integer
Dim j As Byte
Dim tempPOINTAPI As POINTAPI
Dim tempPen As Integer
tempPen = CreatePen(0, 1, RGB(255, 0, 0))
SelectObject(PictureBox1.Handle.ToInt32, tempPen)
MoveToEx(PictureBox1.Handle.ToInt32, 10, 10, tempPOINTAPI)
LineTo(PictureBox1.Handle.ToInt32, 50, 50)
End Sub
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
初冬雪 2005-08-16
  • 打赏
  • 举报
回复
好帖子,我保留下来 !
weixinzhu 2005-08-16
  • 打赏
  • 举报
回复
onpaint事件或者是用bitmap
malingxian 2005-08-16
  • 打赏
  • 举报
回复
绘制图形应该在控件的OnPaint时间里面进行比较好。
或者你可以用API建立一个虚拟位图,绘制到虚拟位图里面,然后用graphics.image=虚拟位图即可,速度快且不闪烁。
Sunny21 2005-08-15
  • 打赏
  • 举报
回复
直接用gdi+当然简单了,但我要画的波形最大有256K,通过水平和垂直滚动条连续画后续的波形,内存占用不断升级,程序反应迟钝
Private Sub DrawPictureBox2()
Dim tempPOINTAPI As POINTAPI
Dim tempPen As Integer
Dim tempHDC As Integer
tempHDC = GetDC(PictureBox1.Handle.ToInt32)

tempPen = CreatePen(0, 1, RGB(255, 0, 0))
SelectObject(tempHDC, tempPen)
MoveToEx(tempHDC, 10, 10, tempPOINTAPI)
LineTo(tempHDC, 50, 50)
ReleaseDC(PictureBox1.Handle.ToInt32, tempHDC)
End Sub
上面的代码已经可以实现,但是一旦窗体失去焦点,画的图形就会消失,是不是需要用临时文件存储,再赋给picturebox1.image??????
pupo 2005-08-15
  • 打赏
  • 举报
回复
你在Paint事件里面画看看
pupo 2005-08-12
  • 打赏
  • 举报
回复
Dim myPen As Pen

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myPen = New Pen(Color.Red)
myPen.Width = 5
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
myPen.Dispose()
End Sub

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawLine(myPen, 1, 1, 200, 200)
e.Graphics.DrawArc(myPen, 100, 100, 100, 50, 60, 180)
End Sub
pupo 2005-08-12
  • 打赏
  • 举报
回复
直接用gdi+咯

16,555

社区成员

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

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