基于系统挂钩和不规则窗口的电子教鞭及电子挡板工具的实现

2009-10-26 09:35
新媒体研究 2009年13期
关键词:教鞭挡板鼠标

陈 超

[摘要]电子课件在教学中已得到了广泛应用,教师在享受电子课件所带来的形象、便捷的好处的同时,也遇到了指点工具不直观的难题。基于系统挂钩和不规则窗口技术,实现了一个类似传统教鞭的电子教鞭工具,以及一个用于突出屏幕重点区域的电子挡板工具,这两种工具已在教学实践中得到了应用,并收到了良好的反馈。

[关键词]系统挂钩不规则窗口教辅工具

中图分类号: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.

猜你喜欢
教鞭挡板鼠标
虚拟教鞭 让演讲更真实
折叠加热挡板
玻璃结构的围挡装置
请停下你手中的教鞭
教室风波之新教鞭之谜
拆凳子
鼠标折叠笔
45岁的鼠标
超能力鼠标
教鞭“失踪”之谜