陳 超
[摘要]電子課件在教學(xué)中已得到了廣泛應(yīng)用,教師在享受電子課件所帶來的形象、便捷的好處的同時(shí),也遇到了指點(diǎn)工具不直觀的難題?;谙到y(tǒng)掛鉤和不規(guī)則窗口技術(shù),實(shí)現(xiàn)了一個(gè)類似傳統(tǒng)教鞭的電子教鞭工具,以及一個(gè)用于突出屏幕重點(diǎn)區(qū)域的電子擋板工具,這兩種工具已在教學(xué)實(shí)踐中得到了應(yīng)用,并收到了良好的反饋。
[關(guān)鍵詞]系統(tǒng)掛鉤不規(guī)則窗口教輔工具
中圖分類號:G434文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)0710012-01
一、引言
隨著多媒體技術(shù)日新月異地發(fā)展,已經(jīng)有越來越多的教師在課堂上應(yīng)用了基于PowerPoint、Flash平臺的電子課件,教師在享受電子課件所帶來的形象、便捷的好處的同時(shí),也會遇到一些應(yīng)用傳統(tǒng)教學(xué)手段時(shí)所沒有的難題。比如,在傳統(tǒng)教學(xué)手段中,教師可以通過手中的教鞭在板書上進(jìn)行指點(diǎn),清晰地告知學(xué)生當(dāng)前的講解重點(diǎn)。然而,在利用計(jì)算機(jī)播放電子課件進(jìn)行授課時(shí),往往會因?yàn)槭髽?biāo)光標(biāo)過小而使學(xué)生無法跟隨教師的教學(xué)意圖。為了解決這一難題,本文基于Microsoft Visual Studio 6.0實(shí)現(xiàn)了兩種方便易用的計(jì)算機(jī)輔助教學(xué)工具:電子教鞭和電子擋板。其中,電子教鞭工具可以用任意形狀、任意大小的圖片來替代鼠標(biāo)光標(biāo),當(dāng)使用較醒目的圖片時(shí)(如傳統(tǒng)教鞭樣式的圖片),學(xué)生很容易獲知教師當(dāng)前的操作意圖;電子擋板工具可以跟隨鼠標(biāo)移動,動態(tài)遮擋屏幕的部分區(qū)域,以使學(xué)生的注意力集中于教學(xué)內(nèi)容上。下面將詳述它們的實(shí)現(xiàn)原理。
二、電子教鞭及電子擋板工具的實(shí)現(xiàn)原理
本文在實(shí)現(xiàn)電子教鞭及電子擋板工具時(shí)主要應(yīng)用了Windows系統(tǒng)下的掛鉤技術(shù)和創(chuàng)建非規(guī)則窗口技術(shù)。
(一)Windows系統(tǒng)下的掛鉤技術(shù)
Windows系統(tǒng)是一個(gè)基于消息驅(qū)動機(jī)制的操作系統(tǒng),系統(tǒng)的行為是圍繞消息的產(chǎn)生與處理展開的。Windows系統(tǒng)下掛鉤技術(shù)的原理就是應(yīng)用程序可以在系統(tǒng)的消息處理過程上外掛一個(gè)自定義的子程序,在消息尚未被系統(tǒng)處理之前,由該子程序來截獲對應(yīng)消息,以進(jìn)行監(jiān)視或執(zhí)行特定操作。本文在實(shí)現(xiàn)電子教鞭和電子擋板工具時(shí)使用的是WH_MOUSE類型的掛鉤函數(shù),該類掛鉤函數(shù)可以截獲所有的鼠標(biāo)移動消息,即當(dāng)鼠標(biāo)移動位置時(shí),將通知所有該類型的掛鉤函數(shù)。
使用掛鉤技術(shù)時(shí),首先要通知Windows系統(tǒng)所使用掛鉤的類型,在這里使用系統(tǒng)函數(shù)SetWindowsHookEx進(jìn)行掛鉤的注冊:
SetWindowsHookEx(WH_MOUSE, MyMouseProcess, hDll, NULL);
其中,第一個(gè)參數(shù)說明了掛鉤的類型,在這里是WH_MOUSE類型,說明該掛鉤函數(shù)將捕獲所有的鼠標(biāo)移動消息;第二個(gè)參數(shù)指明了用于提前處理鼠標(biāo)移動消息的自定義子函數(shù)MyMouseProcess。
完成WH_MOUSE掛鉤的注冊之后,當(dāng)鼠標(biāo)被用戶移動時(shí),Windows系統(tǒng)就會把鼠標(biāo)移動的消息源源不斷地傳遞給MyMouseProcess子函數(shù),其中包含鼠標(biāo)當(dāng)前位置信息。在MyMouseProcess子函數(shù)中,就可以對接收到的位置信息進(jìn)行處理,如實(shí)時(shí)顯示鼠標(biāo)位置或轉(zhuǎn)發(fā)到到其它窗口。
(二)創(chuàng)建非規(guī)則窗口
為了實(shí)時(shí)跟蹤鼠標(biāo)的當(dāng)前位置,同時(shí)又不影響正常的操作,在本文中用非規(guī)則窗口來顯示電子教鞭或電子擋板的形狀。在Windows系統(tǒng)中創(chuàng)建非規(guī)則窗口需按以下幾個(gè)步驟進(jìn)行操作:
1、載入用于定義窗口形狀的帶有透明色的位圖
這樣位圖可以在Photoshop中制作,制作過程中必須用統(tǒng)一的透明色對透明區(qū)域進(jìn)行填充。載入位圖的操作可以由Windows系統(tǒng)函數(shù)LoadBitma
來實(shí)現(xiàn):
HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName);
其中,第一個(gè)參數(shù)要填入當(dāng)前程序的實(shí)例句柄;第二個(gè)參數(shù)指明了所要加載位圖的資源名稱;返回值為所載入的位圖句柄。
2、將帶有透明色的位圖轉(zhuǎn)化為區(qū)域
Windows系統(tǒng)中提供了區(qū)域HRGH這一GDI(Graphics Device Interface)元素,通過應(yīng)用區(qū)域即可把Windows中的標(biāo)準(zhǔn)窗口轉(zhuǎn)化為非規(guī)則窗口。但是,位圖無法直接轉(zhuǎn)換為區(qū)域,需要根據(jù)位圖各位置上的顏色信息逐步生成區(qū)域。如果某位置上的顏色信息為透明色,則跳過它去處理下一位置;反之,如果其顏色信息非透明色,則將該位置加入到區(qū)域中。按這樣的方式處理一遍后,就可得到一個(gè)和位圖相一致的區(qū)域。
3、將創(chuàng)建的區(qū)域設(shè)定為窗口區(qū)域
應(yīng)用Windows系統(tǒng)提供的函數(shù)SetWindowRgn,可以將所建立的區(qū)域設(shè)定到當(dāng)前窗口上,這樣便生成了一個(gè)定制的非規(guī)則窗口。
三、電子教鞭及電子擋板工具的應(yīng)用實(shí)例
本文所實(shí)現(xiàn)的電子教鞭及電子擋板工具已在教學(xué)實(shí)踐中得到了應(yīng)用,并收到了良好的反饋。如在圖1(a)所示的效果圖中,使用了傳統(tǒng)教鞭形狀的非規(guī)則窗口來代替鼠標(biāo)指針,學(xué)生可以清楚地獲知教師的操作意圖,使教學(xué)過程更為流暢。在圖1(b)中展示了電子擋板工具的應(yīng)用實(shí)例,教師通過使用該工具,可以使學(xué)生專注于程序代碼的含義,避免因屏幕過于繁雜而分散學(xué)生的注意力。
(a) 電子教鞭 (b) 電子擋板
圖1電子教鞭及電子擋板工具應(yīng)用效果圖
四、結(jié)語
隨著多媒體教學(xué)模式的深入應(yīng)用,一些問題也慢慢浮現(xiàn)出來,如學(xué)生思路跟不上教師的操作、信息過多導(dǎo)致教學(xué)重點(diǎn)的迷失等。本文通過編程的方式為解決這些問題做了有益的探索,相關(guān)工具已得到了實(shí)際應(yīng)用。下一步,還將構(gòu)建一個(gè)完備的非規(guī)則窗口庫供教師使用,以適應(yīng)各種教學(xué)場合的需要。
參考文獻(xiàn):
[1]韓麗娜、石昊蘇,使用雙緩存來解決GDI下的閃爍問題[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2006,27(17).
[2]劉靜華、王永生等,計(jì)算機(jī)繪圖[M]. 北京:高等教育出版社,2006.5.