键盘类事件
事件 发生时机
keypress 用户按下键盘并且放开时
keydown 用户按下键盘时
keyup 用户放开按键时
例:(ch03/ex12.vbp)P85
鼠标类事件
事件 发生时机
click 用户在对象上按下鼠标左键并且放开时
dblclick 用户在对象上面双击鼠标时
mousedown 用户在对象上面按下鼠标左键时
mouseup 用户在对象上面放开鼠标左键时
mousemove 用户在对象上面移动鼠标时
mouseup和click事件有何区别
1)如果用户在对象上按下鼠标左键,而鼠标仍然在对象上时放开鼠标,会先发生mouseup事件再发生click事件。
2)若用户在对象上按下鼠标左键,然后将鼠标移到对象之外再放开鼠标:只发生mouseup事件。
3)若用户在对象之外按下鼠标左键,然后将鼠标移到对象上再入开鼠标:只发生mouseup事件。
Mouseup与click选择
在windows操作的惯例中,所谓“用鼠标单击”指的是“按下鼠标左键,不要移开鼠标并放开鼠标左键”(也就是click意思)。因此,如果程序想要针对用户“用鼠标单击”做反应,就应该 将程序编写在click事件程序中。
至于mouseup事件通常与mousedown配对使用。
例:写一个可供用户画线的程序,当用户按下鼠标左键时,决定线段的第一点,然后用户会移动鼠标,当放开鼠标左键时,就由第一点画一条线到鼠标指针所在的位置。(ch03\练习7a.vbp)
如何在对象上作图
1)用pset方法画点
格式:[对象名.]pset (x,y) [,颜色]
其中颜色可以用RGB函数指定或符号常量(vbred vbgreen vbblue……)
rgb(red,green,blue)
其中:red,green,blue取值0—255的整数。点的大小由对象的drawWidth属性决定。
功能:返回一个颜色值。
例:在窗体中随机地显示若干彩色的点。窗体上有两个命令按钮:“画点”和“退出”。单击“画点”按钮,则在窗体上随机画上若干点。单击“退出”按钮,结束程序的运行。(ch03\练习13.vbp)
Private Sub Command1_Click()
For i = 1 To 3000
x = Rnd * Width
y = Rnd * Height
r = Int(256 * Rnd)
g = Int(256 * Rnd)
b = Int(256 * Rnd)
PSet (x, y), RGB(r, g, b)
Next i
End Sub
例:设计一个窗体使用鼠标在其上任意绘制图形。(ch03\ex8.vbp)
Dim mouse As Boolean ’mouse变量用来标志画图的开始
Private Sub Form_Load()
mouse = False
Me.ForeColor = vbRed
Me.DrawWidth = 2
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
mouse = True
PSet (X, Y)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If mouse Then
PSet (X, Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
mouse = False
End Sub
2)line方法
[对象.]line [[step](x1,y1)] - [step](x2,y2)[,颜色][,B[F]]
功能:用来画直线和矩形框等。
Step:设置坐标值是绝对坐标还是相对坐标。(有step 是相对坐标)
缺省[[step](x1,y1)]时:从上一次画图点到当前点画直线。
选择B:利用对角坐标画出矩形。
选择F:矩形以矩形边框填充。
直线的宽度由对象的drawWidth指定,直线的样式由对象的drawStyle属性指定。(P145)
3)circle方法
[对象.]circle [step](x,y),r,c[,sang][,eang][,mod]
(x,y) 园、园弧或者椭圆的园心坐标。
r 园、园弧的半径。
c 设置绘图颜色。
sang 在画园弧时设置园弧或椭圆弧的起始角度(0--2∏)。
eand 在画园弧时设置园弧或椭圆弧的终止角度(0--2∏) 。
Mod 在画椭圆时设置椭圆的纵横比值(大于1则椭圆细而高)
园的样式:由对象的fillStyle属性决定。P150。线的宽度由对象的drawWidth指定,线的样式由对象的drawStyle属性指定。
画扇形:则起始角及终止角都是取负值。(ch03\ex10.vbp)
例:设计一个窗体,单击绘图按钮时,在窗体绘制如下图形:(ch03\ex9.vbp)
例:设计一个窗体,在上面绘制如下图所示的弧和扇形(ch03\ex10.vbp)
例: 1)在picture1(300,300)上画一点,(ch03\画图方法.vbp)
2)在picture1上画从(600,600)—(1000,1000)两点直 线,颜色红色。
3)在picture1上画以点(1200,1000)到点(2000,2500) 对角点矩形,颜色为绿色。
4)在picture1上画以(1500,600)为园心半径200,颜色为 蓝色的园。
5)在picture1上画园弧,以(4500,600)为园弧园心,半径 400,起始角900,终止角2700。
6)在picture1上画椭圆,椭园园心为(3500,1500),半径 为500,椭园横轴与纵轴比率0.5,线条颜色为黄色。
回到上一例(ch03\练习7a.vbp)
dim x0,y0 as integer
private sub form_mousedown(button as integer,shift as integer, x as single, y as single)
x0=x
y0=y
me.mousepointer=2
end sub
private sub form_mouseup(button as integer, shift as integer, x as single,y as single)
line (x0,y0)-(x,y)
end sub