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