杨小斌 郑凤娥
摘要:计算机操作课中的操作题目以仿卡拉OK形式出现,给学生带来了方便。在此,对在教学中辅助使用“题目播放器”的必要性及开发该程序的技术要点进行了研究。
关键词:操作课;题目播放;必要性;技术要点
中图分类号:TP37文献标识码:A文章编号:1009-3044(2012)05-1157-04
On Development for the‘Player of Exercises
YANG Xiao-bin, ZHENG Feng-e
(HeYuan City Health School,Heyuan 517300,China)
Abstract:It is convenient to student that the question of exercises will be appear like karaoke in computer skill-practicing courses.here , make research on necessity and technical points for developing‘player of exercisesused in teaching.
Key words:computer skill- practicing courses; player of exercises; necessity; technical points
酷狗”音乐的卡拉OK歌词形式,让我们可以边娱乐边做事,无论有多少个窗口,随时都能看到歌词。计算机操作课中的操作题目能用类似的方式播放,那就灵活多了。本文阐述了在计算机操作课辅助使用它的必要性及开发它的技术要点。
1必要性
在无纸化办公的信息时代,计算机操作课的操作题,教师常用word文档或文本文件的形式发送给同学们,同学们打开题目后,就要在一个窗口看了题目,记住题目,切换到另一个窗口做练习,因为懒得记,有些学生干脆就不去做;即使调小两个窗口至同时看得见,不用进行窗口切换不用记题了,但窗口较小,又会给窗口信息的浏览带来局限,因为信息浏览不畅,有些学生很快就会失去动手的热情。操作题目也能和“酷狗”卡拉OK形式播放歌词那样出现,不存在窗口切换问题,不用去记题,学生就没有了偷懒的藉口。
2技术要点
“题目播放器”采用VB6.0编程语言开发。需要它有类似“酷狗“以卡拉OK形式播放歌词的界面和功能。
2.1界面
程序的设计界面是为实现运行界面而构思的。
2.1.1运行界面
运行界面是仿“酷狗”能保持在最顶层和透明窗口,工具栏可隐藏,如图1所示(图1中,绿色的文字是操作题目,上方绿条上有黄色按钮的是工具栏,程序是透明形式运行)。
图1
2.1.2设计界面
要实现如图1所示的运行界面,在VB6.0新建工程并设计窗体界面如图2所示,为窗体添加各控件后设置各控件的属性设置如表1所示。
图2
表1
2.2功能实现
要实现程序所需的功能,为窗体添加好控件后,还要为控件的事件添加代码。API函数放在公共模块,设置窗体的Initialize()、Load()事件,image的MouseMove()、Click(),timer的timer()等。
2.2.1公共模块
调用API函数SetWindowPos实现将窗口定位屏幕底部,调用API函数GetWindowLong、SetWindowLong、SetLayeredWindowAttrib? utes实现窗口透明、置顶,调用API函数SendMessage()、ReleaseCapture实现拖动按钮“image1”时移动窗口。为工程添加模块,在模块中添加上述API函数声明的同时设置好这几个函数调用参数(为省篇幅,API函数声明省略)
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20)
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
2.2.2设置窗体的load事件和Initialize事件
为窗体的load事件和Initialize事件添加代码,让程序达到预期的行为,即将窗体置顶、透明、每行显示15个汉字等。
Private Sub Form_initialize()
SetWindowPos Me.hwnd, -1, 2000,
7400, 1050, 250, 2
Me.BackColor = RGB(66, 66, 66)
rtn = GetWindowLong(hwnd,
GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong Me.hwnd,
GWL_EXSTYLE, rtn
SetLayeredWindowAttributes
Me.hwnd, RGB(66, 66, 66), 0,
LWA_COLORKEY
Picture1.BackColor = RGB(108, 224, 102)
x1 = ScaleX(Me.Left, vbTwips, vbPixels)
y1 = ScaleY(Me.Top, vbTwips, vbPixels)
x2 = ScaleX(Me.Width, vbTwips, vbPixels)
y2 = ScaleY(Me.Height, vbTwips, vbPixels)
End Sub
Private Sub Form_load()
flag = 0: j = 1: i = 1
On Error GoTo errorhandler
Open "c: est.txt" For Input As #1
n = LOF(1) / 15: ReDim str(n)
jixiu:
Do While Not EOF(1)
tempdata = Input(1, #1)
If tempdata <> Chr$(13) And tempdata <>
Chr$(10) And tempdata <> " " Then
flag = flag + 1: inputdata = tempdata
Else
GoTo jixiu
End If
If (flag Mod 15 <> 0) Then
str(i) = str(i) + inputdata
Else
str(i) = str(i) + inputdata: i = i + 1
End If
Loop
Close #1
Label1.Caption = str(1): Label2.Caption = str(2)
errorhandler:
If Err.Number = 53 Then
MsgBox "请将题目文件test.txt发送到c:"
End If
End Sub
2.2.3设置timer的timer事件
Timer1事件实现检测鼠标是否在窗体内,如果鼠标在窗体内将显示工具栏,如果鼠标不在窗体内,将隐藏工具栏;同时检查鼠标没有悬停在按钮上时,则不亮色显示。
Private Sub Timer1_Timer()
Me.Cls
Dim lpPoint As POINTAPI
GetCursorPos lpPoint
If lpPoint.X > x1 And lpPoint.X < x1 + x2 And lpPoint.Y > y1 And lpPoint.Y < y1 + y2 Then
Picture1.Visible = True
Else
Picture1.Visible = False
End If
If lpPoint.X <> sx1 Or lpPoint.Y <> sy1 Then
Shape1.BackStyle = 0
Shape1.BorderStyle = 0
End If
…
End sub
考虑到shape1…shape7的行为都相同,所以略去相似的代码。
timer2实现自动播放及控制自动换行,代码如下:
Private Sub Timer2_Timer()
Me.Cls
If j <= i Then
j = j + 2
Label1.Caption = str(j)
Label2.Caption = str(j + 1)
End If
End Sub
2.2.4设置image的mouseMove、click事件
Image的mouseMove事件定义当鼠标在按钮上悬停时,按钮背景亮色显示,以image2的mouseMove事件为例(其它各按钮相似的略去)代码如下:
Private Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim sxPoint As POINTAPI
GetCursorPos sxPoint
sx2 = sxPoint.X
sy2 = sxPoint.Y
Shape2.BackStyle = 1
Shape2.BackColor = RGB(157, 242, 114)
Shape2.BorderStyle = 1
Shape2.BorderColor = RGB(255, 255, 255)
End Sub
各个image的click的按钮事件,则因各个功能不同代码也不同,如表2所示。
表2
最后,本程序在VB6.0中调试运行,并在操作课教学中投入使用,受到学生的欢迎,给同学的学习提供了方便,提高了同学们的动手热情。
参考文献:
[1]龚沛曾,陆慰民,杨志强.vb程序设计教程[M].北京:高等教育出版社,2000.
[2]黄立清.基于VB的应用程序中多媒体技术实现的研究[J].长春师范学院学报,2005(7):20-22.
[3]石冰,陶芳泽.基于VB的课件设计中演示鼠标的实现[J].安庆师范学院学报,2004(2):49-51.