【摘要】在利用PowerPoint教學(xué)課件進(jìn)行講課時(shí),為了更好的指引學(xué)生或者強(qiáng)調(diào)所講內(nèi)容,教師們往往會使用PowerPoint的實(shí)時(shí)圈點(diǎn)功能。但是,PowerPoint的實(shí)時(shí)圈點(diǎn)功能有一個(gè)較大的局限和不足:沒有提供如直線、方框、圓圈、橢圓等規(guī)則圖形的圈點(diǎn)功能,而只提供了涂鴉式畫線圈點(diǎn)的功能。為此,該文設(shè)計(jì)并利用VB實(shí)現(xiàn)了一個(gè)規(guī)則圈點(diǎn)工具,有效的彌補(bǔ)了PowerPoint的這一不足。該規(guī)則圈點(diǎn)工具的使用,將能大大的提高教師利用PowerPoint課件進(jìn)行多媒體輔助教學(xué)的效率和學(xué)生聽課的效果,從而提高教學(xué)質(zhì)量。
【關(guān)鍵詞】計(jì)算機(jī)輔助教學(xué);教學(xué)課件;實(shí)時(shí)圈點(diǎn);規(guī)則圈點(diǎn);工具軟件
【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】B【論文編號】1009—8097(2010)03—0115—04
引言
隨著現(xiàn)代教育技術(shù)的發(fā)展與普及,計(jì)算機(jī)輔助多媒體教學(xué)的方式已被越來越多的學(xué)校和教師所采用。其中,多媒體教學(xué)課件是實(shí)現(xiàn)計(jì)算機(jī)輔助多媒體教學(xué)的關(guān)鍵。而PowerPoint教學(xué)課件則是當(dāng)前設(shè)計(jì)、開發(fā)和使用最多的一類多媒體教學(xué)課件。
PowerPoint軟件提供了在演示課件的同時(shí)能利用其“繪圖筆”對課件畫圈劃線進(jìn)行實(shí)時(shí)圈點(diǎn)的功能[1]。教師在利用PowerPoint教學(xué)課件進(jìn)行講課時(shí),為了更好的指引學(xué)生或者強(qiáng)調(diào)所講內(nèi)容,往往會使用PowerPoint的這一實(shí)時(shí)圈點(diǎn)功能。但是,PowerPoint的實(shí)時(shí)圈點(diǎn)功能有一個(gè)較大的局限和不足:沒有提供如直線、方框、圓圈、橢圓等規(guī)則圖形的圈點(diǎn)功能,而只提供了涂鴉式畫線圈點(diǎn)的功能。為此,本文將設(shè)計(jì)并利用VB實(shí)現(xiàn)一個(gè)規(guī)則圈點(diǎn)工具,以彌補(bǔ)PowerPoint的這一不足。
一 規(guī)則圈點(diǎn)工具的設(shè)計(jì)
1 本工具的規(guī)則圈點(diǎn)圖形
本工具的規(guī)則圈點(diǎn)功能完全體現(xiàn)在使用規(guī)則的圖形進(jìn)行圈點(diǎn)上。根據(jù)多媒體教學(xué)課件的圈點(diǎn)實(shí)際需求,直線、方框、橢圓是不可缺少的最基本的規(guī)則圖形。
(1)直線
直線是指,給定起點(diǎn)和終點(diǎn)后連接這兩點(diǎn)獲得的直線段。起點(diǎn)和終點(diǎn)可以任意指定,也就是說,直線的方向可以是任意的。
(2)方框
方框是指,由給定左上(或左下)頂點(diǎn)和右下(或右上)頂點(diǎn)獲得的空心矩形框。方框的兩條邊框水平、兩條邊框垂直。基于此,水平的直線和垂直的直線即可方便的分別用高度為0和寬度為0的方框來繪制出。
(3)橢圓
橢圓是指,由給定左上(或左下)頂點(diǎn)和右下(或右上)頂點(diǎn)獲得矩形的內(nèi)接橢圓周。若兩頂點(diǎn)構(gòu)成的是一個(gè)正方形,則此時(shí)獲得的橢圓就是一個(gè)圓。因此,圓就不需要單獨(dú)作為一種基本圖形了。
2 規(guī)則圈點(diǎn)圖形的屬性設(shè)置
(1)圖形線條的顏色設(shè)置
為加強(qiáng)實(shí)時(shí)規(guī)則圈點(diǎn)的效果,本工具為用戶提供設(shè)置規(guī)則圈點(diǎn)圖形線條顏色的功能。
(2)圖形線條的寬度設(shè)置
規(guī)則圈點(diǎn)圖形線條寬度的靈活設(shè)置也可加強(qiáng)實(shí)時(shí)規(guī)則圈點(diǎn)的效果,比如,對小的文字設(shè)置細(xì)線條,對大的文字設(shè)置粗線條等。為此,本工具為用戶提供不同寬度大小的線條供選擇。
3 輔助功能
(1)圈點(diǎn)圖形的擦除
當(dāng)需要進(jìn)行重新圈點(diǎn)時(shí),就需要擦除當(dāng)前已有的圈點(diǎn)圖形。為此,本工具為用戶提供圈點(diǎn)圖形的擦除功能。
(2)白板與黑板
電子白板或電子黑板是教師們利用其來補(bǔ)充說明事物的有效工具。為此,本工具為用戶提供調(diào)入白板或調(diào)入黑板的功能。
4本工具的功能結(jié)構(gòu)圖
本工具的功能結(jié)構(gòu)圖如圖1所示。
二 規(guī)則圈點(diǎn)工具的實(shí)現(xiàn)
本工具采用VB(6.0版)[2]這一所見即所得的可視化軟件開發(fā)工具來實(shí)現(xiàn)。
1 基本思想和方法
本文利用VB實(shí)現(xiàn)PowerPoint教學(xué)課件規(guī)則圈點(diǎn)工具的基本思想和方法是:用一個(gè)最大化的、無標(biāo)題欄的、透明的窗體完全覆蓋住PowerPoint教學(xué)課件,然后在這個(gè)透明窗體對應(yīng)于PowerPoint教學(xué)課件待圈點(diǎn)的位置上繪制規(guī)則圖形。這樣,在效果上就如同直接在PowerPoint教學(xué)課件上進(jìn)行規(guī)則圈點(diǎn)一樣。這個(gè)透明的窗體,為方便描述,在接下來的部分我們就稱之為“圈點(diǎn)窗體”。
2 圈點(diǎn)窗體的設(shè)置
(1)圈點(diǎn)窗體的屬性設(shè)置
圈點(diǎn)窗體在其屬性窗口中關(guān)鍵屬性的設(shè)置及其相關(guān)說明見表1。
(2)圈點(diǎn)窗體的透明性設(shè)置
VB窗體沒有直接用于設(shè)置窗體透明性的屬性或方法,這樣,將圈點(diǎn)窗體設(shè)置為透明的需要通過間接方式來實(shí)現(xiàn)。本文的實(shí)現(xiàn)方法是:將當(dāng)前屏幕顯示的PowerPoint教學(xué)課件通過屏幕硬拷貝的方式存至剪貼板,然后將剪貼板中的屏幕快照顯示在圈點(diǎn)窗體上。這樣,圈點(diǎn)窗體顯示出的就是PowerPoint教學(xué)課件的內(nèi)容,就如同窗體是透明的一樣。
由于VB沒有提供屏幕硬拷貝函數(shù),因而我們需要借助API函數(shù)來實(shí)現(xiàn)。相關(guān)API函數(shù)的聲明如下:
Declare Sub keybd_event Lib \"user32\" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
API函數(shù)keybd_event的功能為模擬鍵盤鍵入,根據(jù)其用法,只需如下的方式調(diào)用該API函數(shù)就可以實(shí)現(xiàn)屏幕硬拷貝:
Call keybd_event(H2C, 1, 0, 0)
于是,圈點(diǎn)窗體的透明性可通過在圈點(diǎn)窗體的“Load”事件中加入如下代碼實(shí)現(xiàn):
Call keybd_event(H2C, 1, 0, 0) '屏幕硬拷貝
DoEvents '等待屏幕硬拷貝完畢后再繼續(xù)執(zhí)行
Me.Picture = Clipboard.GetData() '從剪貼板對象中獲得屏幕硬拷貝的圖像,并將其設(shè)置為圈點(diǎn)窗體上的圖像
3 圈點(diǎn)圖形的相關(guān)設(shè)置
(1)圈點(diǎn)圖形的類型設(shè)置
根據(jù)圈點(diǎn)的需求,直線、方框和橢圓這3種類型的規(guī)則圈點(diǎn)圖形以及涂鴉式畫線間必須能方便的進(jìn)行相互切換。為了操作上的便捷性,采用右鍵快捷菜單的方式進(jìn)行當(dāng)前圈點(diǎn)圖形類型的設(shè)置。其實(shí)現(xiàn)方法是:首先通過菜單設(shè)計(jì)器設(shè)計(jì)好相關(guān)快捷菜單項(xiàng),如圖2(a)所示,然后在快捷菜單項(xiàng)“圖型”的每個(gè)子菜單項(xiàng)的“Click”事件中加入相應(yīng)的代碼來設(shè)置當(dāng)前圈點(diǎn)圖形的類型。比如,要設(shè)置為“直線”(其他的圖形類型類似),則在其相應(yīng)“Click”事件中加入如下代碼:
sPenStyle = \"Line\"
其中,字符串類型變量sPenStyle存儲當(dāng)前圈點(diǎn)圖形的類型。初始時(shí),sPenStyle為“Doodle”(涂鴉),其在圈點(diǎn)窗體的“Load”事件中加入如下代碼實(shí)現(xiàn):
sPenStyle = \"Doodle\"
(2)圖形線條的顏色設(shè)置
圈點(diǎn)圖形線條的顏色設(shè)置在進(jìn)行圈點(diǎn)時(shí)起到非常重要的作用,因此需要設(shè)置圈點(diǎn)圖形線條的顏色為紅、黃、綠、青、藍(lán)、紫、黑、白等常見顏色。同樣的,為操作上的便捷性,采用右鍵快捷菜單的方式進(jìn)行當(dāng)前圈點(diǎn)圖形線條顏色的設(shè)置。其實(shí)現(xiàn)方法是:首先通過菜單設(shè)計(jì)器設(shè)計(jì)好相關(guān)快捷菜單項(xiàng),如圖2(b)所示,然后在快捷菜單項(xiàng)“線色”的每個(gè)子菜單項(xiàng)的“Click”事件中加入相應(yīng)的代碼來設(shè)置當(dāng)前圈點(diǎn)圖形線條的顏色。比如,要設(shè)置為“黃”(其他的圖形線條顏色類似),則在其相應(yīng)“Click”事件中加入如下代碼:
Me.ForeColor = vbYellow
(3)圖形線條的寬度設(shè)置
圈點(diǎn)圖形線條的寬度設(shè)置在進(jìn)行圈點(diǎn)時(shí)必不可少,根據(jù)實(shí)際多媒體教學(xué)中對圈點(diǎn)的需求,一般需要設(shè)置圈點(diǎn)圖形線條的寬度為1~9。同樣的,為操作上的便捷性,采用右鍵快捷菜單的方式進(jìn)行當(dāng)前圈點(diǎn)圖形線條寬度的設(shè)置。其實(shí)現(xiàn)方法是:首先通過菜單設(shè)計(jì)器設(shè)計(jì)好相關(guān)快捷菜單項(xiàng),如圖2(c)所示,然后在快捷菜單項(xiàng)“線寬”的每個(gè)子菜單項(xiàng)的“Click”事件中加入相應(yīng)的代碼來設(shè)置當(dāng)前圈點(diǎn)圖形線條的寬度。比如,要設(shè)置為“3”(其他的圖形線條寬度類似),則在其相應(yīng)“Click”事件中加入如下代碼:
Me.DrawWidth = 3
4 圈點(diǎn)圖形的繪制
圈點(diǎn)圖形的繪制,是通過圈點(diǎn)窗體的“MouseDown”、“MouseMove”和“MouseUp”這3個(gè)事件聯(lián)合實(shí)現(xiàn)的。其實(shí)現(xiàn)方法是:在點(diǎn)下鼠標(biāo)左鍵觸發(fā)的窗體“MouseDown”事件中獲取當(dāng)前鼠標(biāo)的位置作為起始點(diǎn),在接著不松開鼠標(biāo)左鍵進(jìn)行移動觸發(fā)的窗體“MouseMove”事件中獲取當(dāng)前鼠標(biāo)的位置作為中間點(diǎn),在最后松開鼠標(biāo)左鍵觸發(fā)的窗體“MouseUp”事件中獲取當(dāng)前鼠標(biāo)的位置作為終止點(diǎn);除涂鴉式圖形外,起始點(diǎn)與中間點(diǎn)確定的圖形為臨時(shí)圖形,其采用“XOR”(異或)模式在窗體上繪制,再一次以“XOR”模式繪制同一個(gè)圖形即可消除該圖形而不影響窗體的背景圖像,起始點(diǎn)與終止點(diǎn)確定的圖形為最終繪制出的圈點(diǎn)圖形;對涂鴉式圖形,直接在前一點(diǎn)與當(dāng)前點(diǎn)間繪制一條線段,不再進(jìn)行消除。下面,將詳細(xì)的給出在這3個(gè)事件中的具體實(shí)現(xiàn)代碼。
(1)在“MouseDown”事件中
If Button = vbLeftButton Then '如果點(diǎn)下鼠標(biāo)左鍵
bIsDrawing = True '設(shè)置為正在繪制(圈點(diǎn))
iFstX = X : iFstY = Y '起始點(diǎn)取鼠標(biāo)當(dāng)前位置
iPreX = X : iPreY = Y '前一點(diǎn)取鼠標(biāo)當(dāng)前位置
Me.DrawMode = vbXorPen '以“XOR”模式進(jìn)行繪制
Select Case sPenStyle '判斷當(dāng)前的圈點(diǎn)圖形類型
Case \"Doodle\" '若為“涂鴉”
Me.DrawMode = vbCopyPen '以直接模式進(jìn)行繪制
Me.Line (iPreX, iPreY)-(X, Y) '在前一點(diǎn)與當(dāng)前點(diǎn)間繪制直線
Case \"Line\" '若為“直線”
Me.Line (iFstX, iFstY)-(iPreX, iPreY) '在起始點(diǎn)與前一點(diǎn)間繪制直線
Case \"Rectangle\" '若為“方框”
Me.Line (iFstX, iFstY)-(iPreX, iPreY), , B '在起始點(diǎn)與前一點(diǎn)間繪制方框
Case \"Ellipse\" '若為“橢圓”
If iFstX - iPreX = 0 Then
r = 255
Else
r = Abs(iFstY - iPreY) / Abs(iFstX - iPreX)
End If '計(jì)算待繪制橢圓的長軸短軸比
Me.Circle (CLng(iFstX / 2 + iPreX / 2), CLng(iFstY / 2 + iPreY / 2)), Max(Abs(iFstX - iPreX), Abs(iFstY - iPreY)) / 2, , , , r '在起始點(diǎn)與前一點(diǎn)間繪制橢圓
End Select
End If
(2)在“MouseMove”事件中
If Button = vbLeftButton And bIsDrawing Then '如果點(diǎn)下鼠標(biāo)左鍵,并且正在繪制(圈點(diǎn))
Me.DrawMode = vbXorPen '以“XOR”模式進(jìn)行繪制
Select Case sPenStyle '判斷當(dāng)前的圈點(diǎn)圖形類型
Case \"Doodle\" '若為“涂鴉”
Me.DrawMode = vbCopyPen '以直接模式進(jìn)行繪制
Me.Line (iPreX, iPreY)-(X, Y) '在前一點(diǎn)與當(dāng)前點(diǎn)間繪制直線
Case \"Line\" '若為“直線”
Me.Line (iFstX, iFstY)-(iPreX, iPreY) '在起始點(diǎn)與前一點(diǎn)間繪制直線,即可消除中間狀態(tài)的直線
Me.Line (iFstX, iFstY)-(X, Y) '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制直線
Case \"Rectangle\" '若為“方框”
Me.Line (iFstX, iFstY)-(iPreX, iPreY), , B '在起始點(diǎn)與前一點(diǎn)間繪制方框,即可消除中間狀態(tài)的方框
Me.Line (iFstX, iFstY)-(X, Y), , B '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制方框
Case \"Ellipse\" '若為“橢圓”
If iFstX - iPreX = 0 Then
r = 255
Else
r = Abs(iFstY - iPreY) / Abs(iFstX - iPreX)
End If '計(jì)算待繪制橢圓的長軸短軸比
Me.Circle (CLng(iFstX / 2 + iPreX / 2), CLng(iFstY / 2 + iPreY / 2)), Max(Abs(iFstX - iPreX), Abs(iFstY - iPreY)) / 2, , , , r '在起始點(diǎn)與前一點(diǎn)間繪制橢圓,即可消除中間狀態(tài)的橢圓
If iFstX - X = 0 Then
r = 255
Else
r = Abs(iFstY - Y) / Abs(iFstX - X)
End If '計(jì)算待繪制橢圓的長軸短軸比
Me.Circle (CLng(iFstX / 2 + X / 2), CLng(iFstY / 2 + Y / 2)), Max(Abs(iFstX - X), Abs(iFstY - Y)) / 2, , , , r '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制橢圓
End Select
iPreX = X : iPreY = Y '前一點(diǎn)取鼠標(biāo)當(dāng)前位置
End If
(3)在“MouseUp”事件中
If bIsDrawing Then '如果正在繪制(圈點(diǎn))
If Button = vbLeftButton Then '如果松開鼠標(biāo)左鍵
Me.DrawMode = vbCopyPen '以直接模式進(jìn)行繪制
ElseIf Button = vbRightButton Then '如果松開鼠標(biāo)右鍵
Me.DrawMode = vbXorPen '以“XOR”模式進(jìn)行繪制
End If
Select Case sPenStyle '判斷當(dāng)前的圈點(diǎn)圖形類型
Case \"Doodle\" '若為“涂鴉”
Me.DrawMode = vbCopyPen '以直接模式進(jìn)行繪制
Me.Line (iPreX, iPreY)-(X, Y) '在前一點(diǎn)與當(dāng)前點(diǎn)間繪制直線
Case \"Line\" '若為“直線”
Me.Line (iFstX, iFstY)-(X, Y) '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制直線
Case \"Rectangle\" '若為“方框”
Me.Line (iFstX, iFstY)-(X, Y), , B '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制方框
Case \"Ellipse\" '若為“橢圓”
If iFstX - X = 0 Then
r = 255
Else
r = Abs(iFstY - Y) / Abs(iFstX - X)
End If '計(jì)算待繪制橢圓的長軸短軸比
Me.Circle (CLng(iFstX / 2 + X / 2), CLng(iFstY / 2 + Y / 2)), Max(Abs(iFstX - X), Abs(iFstY - Y)) / 2, , , , r '在起始點(diǎn)與當(dāng)前點(diǎn)間繪制橢圓
End Select
bIsDrawing = False '設(shè)置為不在繪制(圈點(diǎn))
End If
5 工具的輔助功能
(1)圈點(diǎn)圖形的擦除
已繪制的各類圈點(diǎn)圖形的擦除,通過快捷菜單項(xiàng)“擦除”(如圖2)的“Click”事件中加入如下代碼實(shí)現(xiàn):
Me.Cls() '清除屏幕,但保留背景圖像
(2)調(diào)入白板
調(diào)入白板,即把背景圖像替換為全白,這可通過快捷菜單項(xiàng)“白板”(如圖2)的“Click”事件中加入如下代碼實(shí)現(xiàn):
Set Me.Picture = Nothing '去除背景圖像
Me.BackColor = vbWhite '將背景設(shè)置為全白
(3)調(diào)入黑板
調(diào)入黑板,即把背景圖像替換為全黑,同調(diào)入白板類似,可通過快捷菜單項(xiàng)“黑板”(如圖2)的“Click”事件中加入如下代碼實(shí)現(xiàn):
Set Me.Picture = Nothing '去除背景圖像
Me.BackColor = vbBlack '將背景設(shè)置為全黑
6 工具的啟動與結(jié)束
(1)工具的啟動
在PowerPoint中,可以啟動任意的外部應(yīng)用程序。本工具的啟動,就是利用這一點(diǎn)來實(shí)現(xiàn)的。具體實(shí)現(xiàn)方法是:在PowerPoint教學(xué)課件適當(dāng)?shù)牡胤?比如左上角、左下角、右上角或右下角等)放置一個(gè)圖形按鈕,并將圖形按鈕對應(yīng)“動作設(shè)置”中的“運(yùn)行程序”設(shè)置為本工具的應(yīng)用程序名(比如“Punctuator.exe”,必要時(shí)需帶上路徑)。這樣,當(dāng)演示PowerPoint教學(xué)課件并需要進(jìn)行規(guī)則圖形圈點(diǎn)時(shí),點(diǎn)擊這個(gè)圖形按鈕就開始啟動本規(guī)則圖形圈點(diǎn)工具了。
(2)工具的結(jié)束
圈點(diǎn)窗體的關(guān)閉事實(shí)上就意味著本工具的結(jié)束,從而返回到PowerPoint教學(xué)課件的正常演示。這樣,本工具的結(jié)束即可通過快捷菜單項(xiàng)“結(jié)束”(如圖2)的“Click”事件中加入如下代碼實(shí)現(xiàn):
Unload Me '卸載(關(guān)閉)圈點(diǎn)窗體,從而結(jié)束程序
三 結(jié)束語
本文設(shè)計(jì)并利用VB實(shí)現(xiàn)了一個(gè)規(guī)則圈點(diǎn)工具,有效的彌補(bǔ)了在PowerPoint中只能進(jìn)行涂鴉式畫線圈點(diǎn)的不足。本規(guī)則圈點(diǎn)工具的使用,將能大大的提高教師利用PowerPoint課件進(jìn)行多媒體輔助教學(xué)的效率和學(xué)生聽課的效果,從而提高教學(xué)質(zhì)量。
參考文獻(xiàn)
[1] 馬力克.用PowerPoint2003制作教學(xué)課件[M].上海:華東師范大學(xué)出版社,2008.
[2] 仲維俊.Visual Basic 6.0完全自學(xué)手冊[M].北京:機(jī)械工業(yè)出版社,2007.
Design and Implementation of Regular Punctuation Tool for PowerPoint Teaching Courseware
LI Xu-dong
(School of Mathematics Statistics, Zhejiang University of Finance Economics, Hangzhou 310018, China)
Abstract: When teaching with PowerPoint teaching courseware, for better guide to students or emphasizing contents, teachers often use the real-time punctuation function of PowerPoint. However, there is a big limitation and shortage of the real-time punctuation function of PowerPoint: It provides no punctuation function by regular-graphics of line, rectangle, circle and ellipse but only provides punctuation function by doodling. For this reason, a regular punctuation tool for PowerPoint teaching courseware was designed and implemented using VB, which effectively made up for the shortage of PowerPoint. The using of this regular punctuation tool would well improve multimedia aided teaching efficiency of teachers with PowerPoint teaching courseware and the listening effect of students, and therefore it would improve the teaching quality.
Keywords: Computer Aided Instruction; Teaching Courseware; Real-time Punctuation; Regular Punctuation; Tool Software
編輯:山石