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







參考文獻:
[1]韓麗娜、石昊蘇,使用雙緩存來解決GDI下的閃爍問題[J]. 計算機工程與設計, 2006,27(17).
[2]劉靜華、王永生等,計算機繪圖[M]. 北京:高等教育出版社,2006.5.