APP下载

利用VBA实现PowerPoint课件的规则图形圈点

2010-08-15李旭东

中国现代教育装备 2010年9期
关键词:圈点窗体鼠标

李旭东

浙江财经学院 浙江杭州 310018

利用VBA实现PowerPoint课件的规则图形圈点

李旭东

浙江财经学院 浙江杭州 310018

教师在利用PowerPoint教学课件进行讲课时,经常会用到PowerPoint的圈点功能。但是,PowerPoint的圈点功能存在较大的局限和不足,绘图笔没有提供如直线、方框、圆圈、椭圆等规则的圈点图形,而只提供了涂鸦式画线的功能。为此,本文利用VBA编程实现了PowerPoint教学课件的规则图形圈点,弥补了PowerPoint只能进行涂鸦式画线圈点的不足。PowerPoint教学课件规则图形圈点的实现,将能较大地提高教师多媒体教学的工作效率和学生听课的效果,从而有助于提高教学质量。

教学课件;PowerPoint;圈点;规则图形;VBA

随着计算机多媒体技术、教育信息技术的发展与普及,计算机辅助多媒体教学已深入越来越多学校的教学体系。其中,多媒体教学课件是实现计算机辅助多媒体教学的关键。PowerPoint因简单易学、可利用的资源丰富、课件制作和开发周期短等,使得由其制作和开发出的演示型课件成为当前最为常见的一类多媒体教学课件。

教师在利用PowerPoint教学课件进行讲课时,为了更好地引导学生观看课件、使之跟随教师的教学思路和讲解内容,或为了着重指出课件中的某个事物,往往会使用PowerPoint的圈点功能,即用键盘键入Ctrl+P或用鼠标点击相应的菜单调出绘图笔,在课件相应的对象下划线或画圆圈、椭圆等圈住该对象。PowerPoint的这一圈点功能,对采用PowerPoint课件进行课堂教学的教师来说简直就是如虎添翼,当然也提高了教师的工作效率和教学质量。

但是,PowerPoint的圈点功能有一个较大的局限和不足:绘图笔没有提供如直线、方框、圆圈、椭圆等规则的圈点图形,而只提供了涂鸦式画线的功能。而学校多媒体教室一般都没有配置如手写输入笔、触摸屏等输入设备,使得PowerPoint课件的圈点往往只能使用鼠标来实现。但使用鼠标,教师一般很难把线画直、把圈画圆。因此,在PowerPoint课件中能用规则的图形(直线、方框、圆圈、椭圆等)进行圈点,成为了教师追求的一大目标。

庆幸的是,虽然PowerPoint没有提供规则图形的圈点功能,但是PowerPoint还有内置的VBA编程语言及其相应的开发工具,可以弥补PowerPoint的这一不足,实现教学课件的规则图形圈点。

一、规则图形圈点的需求分析与总体设计

1.规则圈点图形的类型

根据实际多媒体课件教学的圈点需求,直线、方框、椭圆是必须的最基本的图形。

水平的直线和垂直的直线可分别用高度为0和宽度为0的方框来绘制出,这样,就可以克服直接用直线较难精确绘制水平直线和垂直直线的不足。此外,长轴和短轴的长度相等的特殊椭圆就是一个圆,因此,圆就不需要单独作为一种图形了。

2.图形线条的颜色

为加强圈点的效果,根据PowerPoint教学课件里的文字、图像、公式等内容设置的颜色,我们需要设置相应的圈点图形的颜色,即需要有红、黄、蓝、绿、青、紫等多种常见颜色供选择。

3.图形线条的宽度

同颜色一样,圈点图形线条宽度的灵活设置也可加强圈点的效果,比如,对小的文字设置细线条,对大的文字设置粗线条等。因此,需要提供不同宽度大小的线条供选择。

二、规则图形圈点的详细设计与VBA实现

本文设计与实现PowerPoint课件规则图形圈点的基本思想是:用一个最大化的无标题栏、透明的VBA窗体完全覆盖PowerPoint课件,然后在这个透明窗体对应于PowerPoint课件待圈点的位置上绘制规则图形。这样,在效果上就如同直接在PowerPoint课件上进行规则图形圈点一样。这个透明的VBA窗体,我们称之为“圈点窗体”。

1.圈点窗体的设置

PowerPoint VBA的窗体不同于VB窗体,其为Microsoft Forms 2.0的窗体,因此其在功能上比较弱,也就是说,相应的属性、方法和事件较少。这样,一些在VB窗体中只要设置一下属性或调用一个方法就能实现的功能,在VBA窗体中却需要调用API函数才能实现。

(1)圈点窗体的无标题栏设置

VBA窗体默认是有标题栏的,并且无法通过设置属性或调用方法来改变。因此,将圈点窗体设置为无标题栏需要通过调用API函数来实现。详细实现方法和VBA代码可参见文献[1]。

(2)圈点窗体的透明设置

VBA窗体没有专门用于设置窗体透明性的属性或方法。这样,将圈点窗体设置为透明需要通过其他方式来实现。其实现的思想和方法是:将当前屏幕显示的教学课件通过屏幕硬拷贝的方式保存到剪贴板,然后将剪贴板中的数据转换为图像格式并设置为圈点窗体Picture属性的数据。这样,圈点窗体显示出的就是教学课件的内容,就如同窗体是透明的一样。

由于VBA没有提供屏幕硬拷贝函数、剪贴板对象和图像格式转换函数,因而这些就需要通过调用API函数来实现。这3项的详细实现方法和VBA代码可分别参见文献[2]、[3]和[4]。

(3)圈点窗体的最大化

圈点窗体需要在启动时最大化以使窗体能完全覆盖PowerPoint课件,而VBA窗体没有专门用于设置窗体启动状态的属性或方法,因此同样需要通过调用API函数来实现。所用到的API函数为ShowWindow,于是,将圈点窗体最大化可通过在VBA宏启动的主程序Main代码中的Load usrfrm之后加入如下代码实现:

ShowWindow usrfrm.hWnd, 3

2.圈点图形的绘制

(1)相关的API函数

最大化的无标题栏、透明的圈点窗体完全覆盖PowerPoint课件后,就可以开始进行规则圈点图形的绘制。遗憾的是,VBA窗体没有提供进行图形绘制的方法,需要通过调用API函数来实现圈点图形的绘制。涉及到的相关API函数有GetDC、GetCursorPos、M o v e T o E x、L i n e T o、E l l i p s e、S e t R O P2、CreatePen、GetStockObject、SelectObject和DeleteObject。这些API函数详细的声明格式和调用方法可参见文献[5]。

(2)圈点图形的绘制函数

直线和方框的绘制,均可利用API函数MoveToEx和LineTo的组合来实现;椭圆的绘制,则可直接调用API函数Ellipse来实现。

(3)圈点图形的绘制过程

圈点图形的绘制,是基于窗体的MouseDown、MouseMove和MouseUp事件实现的。其实现的思想和方法是:在点下鼠标触发的窗体MouseDown事件中获取当前鼠标的屏幕坐标位置作为起始点,然后不松开鼠标进行移动触发的窗体MouseMove事件中获取当前鼠标的屏幕坐标位置作为中间点,最后松开鼠标触发的窗体MouseUp事件中获取当前鼠标的屏幕坐标位置作为终止点;起始点与中间点确定的图形为临时图形,其采用XOR(异或)模式绘制在有背景图像的圈点窗体上,再一次以XOR模式绘制同一个图形即可消除该图形而不影响背景;起始点与终止点确定的图形为最终绘制出的圈点图形。

3.圈点图形的类型切换

根据圈点的需求,直线、方框和椭圆这3种类型的圈点图形必须能方便地进行相互切换。为操作上的便捷性,采用快捷键方式进行相互切换。其实现方法是,以切换至直线为例,设其快捷键为Ctrl+F1,在圈点窗体的KeyDown事件中加入如下代码:

If Shift = 2 And KeyCode = vbKeyF1

ShapeStyle = "Line"

End If

其中,变量ShapeStyle存储当前圈点图形的类型。同理,可实现切换圈点图形至方框或椭圆。

4.圈点图形的颜色设置

圈点图形的颜色设置在进行圈点时起到非常重要的作用,因此需要设置圈点图形的颜色为红、黄、蓝、绿、青或紫等常见颜色。同样的,为操作上的便捷性,采用快捷键方式进行颜色设置。其实现方法是,以设置红色为例,设其快捷键为Ctrl+R,则在圈点窗体的KeyDown事件中加入如下代码:

If Shift = 2 And KeyCode = vbKeyR

DrawColor = vbRed

End If

其中,DrawColor存储当前圈点图形的颜色。同理,可实现设置圈点图形的颜色为其他常见颜色。

5.圈点图形的宽度设置

圈点图形的宽度设置在进行圈点时必不可少,根据实际多媒体教学中对圈点的需求,一般需要设置圈点图形的宽度为不同大小的值。同样的,为操作上的便捷性,采用快捷键方式进行宽度设置。其实现方法是,以设置宽度是1为例,设其快捷键为Ctrl+1,则在圈点窗体的KeyDown事件中加入如下代码:

If Shift = 2 And KeyCode = vbKey1

DrawWidth = 1

End If

其中,DrawWidth存储当前圈点图形的宽度。同理,可实现设置圈点图形的宽度为其他值。

6.规则图形圈点的启用与终止

在PowerPoint教学课件中启用VBA实现的规则图形圈点是要以宏的形式启用的。因此需要在PowerPoint页面适当的地方放置一个图形按钮,并将图形按钮对应“动作设置”中的“运行宏”设置为主程序“Main”。这样,当演示PowerPoint教学课件并需要进行规则图形圈点时,点击这个图形按钮就开始启用规则图形圈点功能了。

圈点窗体的关闭事实上就意味着VBA宏的终止,也就是规则图形圈点的终止。实现圈点窗体的关闭,只需要在圈点窗体的DblClick事件中加入代码:

Unload Me

也就是说,鼠标双击就可以终止规则图形圈点,返回到PowerPoint教学课件的正常演示。

三、结束语

本文利用VBA编程实现了PowerPoint教学课件的规则图形圈点,弥补了PowerPoint只能进行涂鸦式画线圈点的不足。PowerPoint教学课件规则图形圈点的实现,将能较好地提高教师多媒体教学的工作效率和学生听课的效果,从而提高教学质量。

[1]李政,梁海英,李昊,等.VBA应用基础与实例教程(第2版)[M].北京:国防工业出版社,2009

[2]How to do a screen capture using VBA [EB/OL].

http://word.mvps.org/FAQS/MacrosVBA/ PrtSc.htm

[3]闲来无事,说说Windows剪贴板[EB/OL]. http://www. officefans.net/cdb/viewthread.php?tid=103805

[4]利用VB捕捉并保存屏幕图像[EB/OL].http://www. qqread.com/vb/k234472.html

[5]冉林仓.Windows API编程[M].北京:清华大学出版社,2005

Realization of punctuating PowerPoint courseware with regular graphics using VBA

Li Xudong
Zhejiang university of finance & economics, Hangzhou, 310018, China

Teachers often use the punctuation function of PowerPoint when teaching with PowerPoint teach ing courseware. However, there is a big limitation and shortage of the punctuation function of PowerPoint: the drawing pen of PowerPoint provides no line, rectangle, circle and ellipse but provides doodling function. For this reason, this paper realized punctuation of PowerPoint courseware with regular graphics using VBA, which made up the shortage of PowerPoint that only provides doodling function. The realization of punctuating PowerPoint courseware with regular graphics will well improve the working effect of multimedia teaching of teachers and the listening effect of students and therefore improve the teaching quality.

teaching courseware; PowerPoint; punctuation; regular graphics; VBA

book=34,ebook=679

2010-01-04

李旭东,博士,副教授。

猜你喜欢

圈点窗体鼠标
催债与还钱
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
物理教学中的“咬文嚼字”
黄侃读书
鼠标折叠笔
杨慎研究《风骨》篇述评
45岁的鼠标
超能力鼠标
WinCE.net下图形用户界面的开发