机房实验教学系统的优化研究与实现

2017-03-06 20:43汪彦刘智勇龙振球
计算机时代 2017年2期
关键词:用户界面鼠标

汪彦++刘智勇++龙振球

摘 要: 针对现存的机房实验教学系统存在的界面简陋、屏幕共享异常等问题,研究了相关优化技术,实现了系统改进。改进系统采用SkinMagic换肤软件、真彩色工具栏类、图标按钮等方式美化用户界面,选用合理的鼠标信息捕获技术成功解决了屏幕共享异常问题。实际应用表明,该改进系统界面美观、性能稳定,有效改善了用户体验,有利于提升实验教学的质量。

关键词: 机房实验教学系统; 用户界面; 屏幕共享; 鼠标

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2017)02-49-03

0 引言

中国高校自1999年开始扩招以来,已经走过了十多个年头,高校的在校生人数越来越庞大。随着学生规模的不断膨胀,高校计算机实验室的教学活动面临日益严峻的挑战,教学质量堪忧[1]。

惟有改革,才有出路。高校教师积极投身机房实验教学的改革实践中,取得了一定实效。在信息技术与教育教学深度融合的时代背景下,一些研究者和软件公司针对机房教学的现状,精心设计出专门适用于机房实验教学的软件系统[2-4]。

我们采用C/S模式、ADO数据访问技术、Socket通信技术,实现了一个机房实验教学管理系统。该系统利用Visual C++6.0开发,以SQL Server 2000作为后台数据库,包括教师端软件、学生端软件和数据库三部分,实现了屏幕共享、在线讨论、电子考勤、任务下达、作业提交等比较丰富的功能,基本满足了机房实验教学的需求[4]。但是,该系统界面比较简陋,用户体验欠佳。同时,系统在使用屏幕共享功能时,教师端操作系统不能响应用户的鼠标双击操作。针对这两个问题,本文研究了相关优化技术,实现了界面美观、性能稳定的改进机房实验教学系统。

1 机房实验教学系统的界面美化

利用MFC建立用户界面和应用程序框架,是利用VC6.0开发该系统时的主流做法,因为这种方法简单快捷,能极大提高地开发效率。但是,利用MFC框架构建的用户界面常常显得简陋,其视觉效果很难令人满意。本文采用SkinMagic换肤软件、真彩色工具栏类、CButtonST类等方式,对文献[4]实现的机房实验教学系统进行界面美化,效果显著。

1.1 SkinMagic换肤技术

SkinMagic[5-6]是一款界面编辑软件,提供了SkinMagicBuilder作为可视化的界面设计工具,无需编程,就可设计出美观大方的用户界面。设计完成的界面可以独立保存为皮肤文件,在VC中通过SkinMagic提供的编程接口可将皮肤文件导入工程,美化用户界面。这种技术实现了界面设计与程序编写的分离,允许美工人员和软件设计师独立工作,最后将两者的工作成果完美结合,特别适合软件开发中不同类型人员的分工协作。我们研究了SkinMagic换肤技术,并用于机房实验教学系统的界面美化,换肤前后视觉效果差异显著,如图1和图2所示。

1.2 真彩色工具栏类的使用

利用VC6.0的MFC框架创建应用程序,默认的工具栏类并不支持真彩色图标的显示。然而,带有真彩色图标的工具栏却能让我们设计的软件更炫更出彩,改善用户的使用体验。网络上提供了CtrueColorToolBar类的下载,这是一个用于加载真彩色位图制作工具栏的类。同时,利用Photoshop、Visual Toolbar 1.5等工具软件,能够非常方便地制作用于工具栏显示的真彩色图标。我们结合上述技术,给机房实验教学系统制作了一个带有漂亮图标的真彩色工具栏,用户反响良好。改进后的带真彩色工具栏的系统界面截图如图3所示。

1.3 图标按钮CButtonST类的使用

VC6.0中默认的CButton类只能创建普通的按钮,按钮的视觉效果难以令人满意。CButtonST类是CButton的派生类,能够实现丰富多彩的按钮效果,可从网上下载。CButtonST类包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件,我们可在当前的VC++工程中导入这些文件,然后在StdAfx.h中编写相应的include语句,即可在编程时使用该类。我们利用该类,为机房实验教学系统加上了漂亮的按钮,这些按钮能同时显示文字和精美的彩色图标,当鼠标移动到按钮上面时还可显示相应的提示文字。改进后的带图标按钮的系统界面截图如图4所示。

2 鼠标捕获技术的对比与选取

屏幕共享是机房实验教学系统的重要功能,文献[7]提供了一种屏幕共享方案。我们应用该方案研发了机房实验教学系统,但是实验中发现,使用屏幕共享时教师端操作系统对于鼠标双击操作没有响应。经过仔细分析和反复对比实验,发现问题的根源在于使用了不恰当的鼠标信息获取技术。

在屏幕共享具体应用中,除了屏幕画面是基本的、必不可少的共享对象外,鼠标光标常常是另外一个关注的焦点。在机房实验教学时,先将教师端屏幕中的鼠标光标的位置及其图标实时地呈现在学生端屏幕画面中,对于学生正确理解教师的操作演示要领至关重要。然后是截屏,虽然利用GDI函数能够便捷地截取屏幕画面,但是并不能同时获取到鼠标光标的相关信息。在Windows操作系统中,利用API函数可以获取鼠标信息,但是不同的鼠标获取技术具有不同的优缺点,需要根据具体应用场景的需求恰当选取。

2.1 鼠标信息获取的基本方法

文献[8]介绍了一种利用API函数获取鼠标光标的简单方法(下文称为法1),这种方法的主要步骤:首先调用GetCursorPos函数获取当前鼠标光标的位置,然后调用GetCursor函数得到鼠标光标的图标句柄,最后将鼠标光标的图标绘制到当前抓取的屏幕位图的相应位置上。

上述法1的优点在于,思路简单明了,编程方便快捷。不过,文献[7]指出,如果当前鼠标焦点不在屏幕共享系统的教师端软件界面之中,那么法1虽然能够准确获取鼠标光标的位置,却不能准确获取鼠标光标的图标。在机房实验教学的实际应用过程中,教师往往会通过实际操作进行演示,教师端鼠标图标不可避免会发生变化,不同的图标代表着不同的含义。在机房实验教學系统的屏幕共享系统中,采用法1来捕获和共享鼠标信息显然不能满足实际需要。

2.2 鼠标信息获取的改进方法

文献[7]提出了一种改进的鼠标信息获取方法(下文称为法2),这种方法的最大特点是调用了AttachThreadInput函数,从而使得系统中不同的进程和线程能够共享输入队列。

法2相对比法1,其实现过程较为复杂,除了调用AttachThreadInput函数外,还需要调用GetWindowThreadProcessID、WindowFromPoint、GetCurrentThreadId等函数,其具体实现代码可参考文献[7]。法2虽然实现过程复杂,编程比较繁琐,但是确实解决了法1的弊端。不管当前鼠标焦点是否在屏幕共享系统的教师端软件界面中,利用法2都能够精准获取鼠标的位置与图标信息。

法2在解决法1弊端的同时,却产生了新的严重问题。如果采用法2捕获鼠标信息,当教师启动机房实验教学系统的屏幕共享功能后,教师端操作系统无法响应教师所进行的鼠标双击操作,只有退出屏幕共享功能,系统才能正常响应鼠标双击。这说明采用法2捕获和共享鼠标信息将严重干扰用户对电脑的正常操作,同样不能满足实际需求。

2.3 鼠标信息获取的推荐方法

实际上,利用API函数GetCursorInfo能够捕获鼠标信息,同时避免法1和法2产生的问题,这正是本文推荐的方法(不妨称为法3)。法3除了需要调用GetCursorInfo函数外,还需要使用光标结构体类型CURSORINFO,下面给出利用VC6.0实现的核心代码:

//绘制鼠标图标到屏幕图像中

通过实验发现,利用上述代码捕获鼠标时,捕获到鼠标光标的位置信息与实际位置不一致,存在一定的偏差。经过反复试探,确认捕获到的鼠标光标的横、纵坐标均比其实际值大10,因此,在屏幕图像中绘制鼠标图标之前,还应该校准鼠标光标的坐标,具体代码如下所示:

point.x-=10;

point.y-=10;

3 结束语

针对文献[4]设计和实现的机房实验教学系统存在的用户界面简单乏味、屏幕共享功能异常等缺陷,本文探讨相关应用技术,有效解决了这些问题。采用优化技术得到的改进机房实验教学系统自投入使用以来,接受了我校师生的教学实践检验,其精美的界面和稳定的性能广受好评,为实验教学改革提供了强有力的技术支持。当然,随着信息技术的发展,机房实验教学系统必然面临软硬件环境变化更新等挑战,师生也会提出更高的需求,我们将采取积极主动的态度,适时完善系统,使之更好地为教学服务。

参考文献(References):

[1] 汪彦,谭新良,何建新,费雄伟.高校C语言程序设计实验教学

改革研究与实践[J].电脑编程技巧与维护,2013.9(18):138-139

[2] 路芳瑞,石何太,张扬.基于C/S与RIA的实验教学管理系统的

设计与实现[J].实验室科学,2012.6(15):97-99

[3] 唐存东,全上克,王志平.高校实验室教学管理系统设计与实

现[J].计算机与现代化,2013.9:113-116

[4] 汪彦,谭新良,何建新.基于C/S模式的机房实验教学系统设

计与实现[J].计算机时代,2014.8:73-75

[5] 任秀英,王崛,余立新.应用SkinMagic设计交互式软件界面[J].

电脑编程技巧与维护,2010.16:27-68

[6] 王敬,孙守迁,杨钟亮.面向VC界面的视觉优化设计方法与

应用[J].计算机应用,2010.30:192-195

[7] 汪彦,黄雪华,涂立.一种改进的应用于机房教学的屏幕共享

方案[J].计算机与现代化,2011,9:82-85

[8] 刘锐宁,宋坤.Visual C++开发典型模块大全[M].人民郵电出

版社,2009.

猜你喜欢
用户界面鼠标
自然用户界面在智能家居系统中的应用路径创新研究:生成式人工智能技术的调节作用
基于CiteSpace的国外用户界面体验图谱量化分析
Progress in Neural NLP: Modeling, Learning, and Reasoning
物联网用户界面如何工作
UI用户界面色彩设计研究
基于B/S的跨平台用户界面可配置算法研究
精彩绝伦的Android UI设计:响应式用户界面与设计模式
超能力鼠标
鼠标也可以是这样的