关于VB里绘制矩形的问题

我在教程上看到用VB绘制矩形的教程,不过里面有好多代码看不懂,希望VB老师们能帮我看下,问题是多了点,不过我真的很想学会VB,谢谢(不懂的问题我在代码后用中括号[]括着)... 我在教程上看到用VB绘制矩形的教程,不过里面有好多代码看不懂,希望VB老师们能帮我看下,问题是多了点,不过我真的很想学会VB,谢谢(不懂的问题我在代码后用中括号[]括着)
Dim xp1 As Single, yp1 As Single
Dim xp2 As Single, yp2 As Single
Dim drawing As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not drawing Then [这里为什么这里多了一个Not,后面的几个IF语句都没有Not的?]
xp1 = X: yp1 = Y [这里定义坐标为什么是用冒号:的,而不是用分号;的?]
xp2 = X: yp2 = Y
drawing = True
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If drawing Then
DrawStyle = 2
DrawMode = vbInvert
Line (xp1, yp1)-(xp2, yp2), , B [这里后面的两个逗号跟B是什么意思的?]
Line (xp1, yp1)-(X, Y), , B [这里的上一句不是已经定义了一个矩形的左上角和右下角坐标了吗,为什么还要加多这一句的?]
xp2 = X: yp2 = Y [这句话又是什么意思?]
End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If drawing Then
DrawDode = vbBlackness
DrawStyle = 0
Line (xp1, yp1)-(X, Y), , B
drawing = False
End If

End Sub
展开
 我来答
hajianyu
2008-12-16 · TA获得超过293个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:178万
展开全部
If Not drawing Then [这里为什么这里多了一个Not,后面的几个IF语句都没有Not的?] :not就是否的意思,或者说不什么什么,在这里就是没有drawing
xp1 = X: yp1 = Y [这里定义坐标为什么是用冒号:的,而不是用分号;的?:这是VB的规定,写成一行的时候就用冒号

Line (xp1, yp1)-(xp2, yp2), , B [这里后面的两个逗号跟B是什么意思的?]:并不是两个逗号,而是其中的参数未设置(在这里是没有设置线的颜色)
Line (xp1, yp1)-(X, Y), , B [这里的上一句不是已经定义了一个矩形的左上角和右下角坐标了吗,为什么还要加多这一句的?] :那么就是画两个矩形了,坐标不一样嘛.
xp2 = X: yp2 = Y [这句话又是什么意思?]:对xp2\yp2赋值啊,这个地方鼠标动了值会有变化的.
还有疑问的话请补充
liuxing4640
2008-12-17
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
Dim xp1 As Single, yp1 As Single
Dim xp2 As Single, yp2 As Single
Dim drawing As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not drawing Then [not表示对 drawing取反]
xp1 = X: yp1 = Y [两行写成一行的时候就用冒号,也可以分开两行写]
xp2 = X: yp2 = Y
drawing = True
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If drawing Then
DrawStyle = 2
DrawMode = vbInvert
Line (xp1, yp1)-(xp2, yp2), , B [两个逗号是因为中间没有注明颜色参数,B 是可选项,指利用对角坐标画矩形]
Line (xp1, yp1)-(X, Y), , B [这一句的作用是所画的矩形在没松开鼠标左键时还不会定形,可以拖动鼠标放大缩小]
xp2 = X: yp2 = Y [这是右下角的坐标,根本所动鼠标拖动值也不同]
End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If drawing Then
DrawDode = vbBlackness
DrawStyle = 0
Line (xp1, yp1)-(X, Y), , B
drawing = False
End If

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hewucheng
2008-12-16 · TA获得超过1501个赞
知道小有建树答主
回答量:555
采纳率:0%
帮助的人:292万
展开全部
1、[这里为什么这里多了一个Not,后面的几个IF语句都没有Not的?]
not表示对 drawing取反再参与if的判断。
2、[这里定义坐标为什么是用冒号:的,而不是用分号;的?]
:相当于分行,也就是本应当写两行或多行的,中间用:隔开就可以写在一行了。
3、[这里后面的两个逗号跟B是什么意思的?]
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]

object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。

Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。

(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。

Step 可选的。关键字,指定相对于线的起点的终点坐标。

(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。

color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。

B 可选的。如果包括,则利用对角坐标画出矩形。

F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式