让课件界面自由伸缩且美观大方的技术方法

来源 :中国教育信息化·基础教育 | 被引量 : 0次 | 上传用户:lilyzhanglove
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘 要:本文针对各类课件因窗口大小的调整或屏幕分辨率的不同而出现的有关界面方面的问题,提出了用高级语言制作课件时解决这类问题的技术和方法,并给出了用VB编写的范例课件。
  关键词:课件界面;控件对象集合;VB范例
  中图分类号:G434 文献标识码:A 文章编号:1673-8454(2008)14-0044-03
  
  一、引言
  
  界面是课件的脸面,课件是否好用、能否被用户所接受,界面起着很重要的作用。然而,课件的界面常常因窗口大小的调整而发生变化,以至于出现捉襟见肘、比例失调甚至“献丑”的窘境;也正因如此,许多课件开发者又采用较为保守的设计思想,将课件界面设计成禁止用户调整大小。此外,课件界面的完整性、美观程度与屏幕分辨率的设置也有一定的关系,课件开发者所使用的电脑的屏幕分辨率往往就是课件运行的最佳屏幕分辨率,并在使用说明书中明确告知用户。如果用户的屏幕不在“最佳状态”情况会如何呢?若运行在较低的屏幕分辨率下,课件窗口可能会超出屏幕范围而出现界面不完整的现象,以至于某些对象在屏幕之外而无法操作;若运行在较高的屏幕分辨率下,课件界面比例缩小而影响美观。这些情况均给用户带来诸多不便。究其根源还在于开发者只重视了课件初始界面的设计,而对课件窗口缩放或屏幕分辨率调整后所出现的缺陷或估计不足或缺乏对策。
   目前,显示器正在从4∶3的标准屏幕向16∶9的宽屏过渡,今后将面临的界面问题会愈加突出。能否让课件界面的大小及屏幕分辨率随用户的需求自由改变,而课件界面中的各个对象随窗口和屏幕同缩放,做到课件界面始终如一、美丽如初呢?为此,笔者进行了有益的尝试,探索出了用高级语言制作课件时解决这类问题的技术和方法。文中就有关设计思想和实现技术做了详细介绍,并给出了用最常用的课件编程语言VB编写的范例课件。
  
   二、设计思想
  
  为了保证课件界面始终如一、能自适应各种屏幕分辨率和各种窗口大小,必须做到让窗口中各个对象的位置、大小、字号、图像等属性随窗口同缩放,而且当窗口的尺寸超过屏幕尺寸时能自动对窗口的大小进行调整。为此,在课件启动时需将课件原始窗口的大小以及窗口中各个对象的位置、大小及字号等记录下来。
   然后在改变窗口大小的Resize事件中进行判断和调整:当窗口宽度改变时,窗口的放大率k=窗口当前宽度÷窗口原始宽度,为保证窗口的纵横比例不变,窗口的当前高度应调整到窗口原始高度的k倍;反之,当窗口高度改变时,窗口的放大率k=窗口当前高度÷窗口原始高度,同样需将窗口的当前宽度调整到窗口原始宽度的k倍;如果窗口的宽度和高度同时改变,则按窗口的宽度改变来处理即可。
   最后,为保证窗口中的各个对象同比例缩放,对象的大小(Width、Height属性)、位置(Left、Right属性)及字号(FontSize属性)等属性值也应在其原始值的基础上乘以k。
  
   三、实现技术
  
  为了实现上述设计思想及相应的功能,需要用一个N行5列的二维全局数组来记录窗体及所有控件的Left、Top、Width、Height和FontSize属性,其中N=控件总数 1(另加窗体)。为了使程序具有普适性,该数组的行数N由程序自动计算并确定下来,即数组是动态的;对于没有相关属性的控件,程序可通过容错的途径来解决。
   1. 对象原始数据的获取
  每一个窗体中的所有控件组成了一个控件对象集合Controls,借助该集合不仅可以统计出窗体中控件的总数,而且还可以直接访问所有的控件。获取原始数据的具体方法为:在窗体加载时先统计出窗体中控件的个数,并由此定义二维动态数组的行数,然后通过控件对象集合及控件索引依次取出所有控件(含窗体)的相关属性并保存在数组中。其VB代码如下:
  Dim a() As Single, CC As Integer, k As Single, t As Single
  Private Sub Form_Load()
  Dim O As Object, n As Integer
  CC = Controls.Count ’控件的个数
  ReDim a(0 To CC, 1 To 5) As Single
  On Error Resume Next ’容错
  For n = 0 To CC
  If n = CC Then Set O = Me Else Set O = Controls(n)
  a(n, 1) = O.Left
  a(n, 2) = O.Top
  a(n, 3) = O.Width
  a(n, 4) = O.Height
  a(n, 5) = O.FontSize
  Set O = Nothing
  Next n
  End Sub
   2. 对象相应属性的重新调整
  每当窗体的大小被改变时,窗体中所有控件的大小、位置和字号等属性需要根据放大率k进行重新调整;此外,如果窗体界面中有直接输出的文本信息,窗体的字号也要放大k倍。为了实现这一功能,要从二维动态数组中先取出对象的原始属性值,然后借助控件对象集合及控件索引来设置所有控件的当前属性值。为此,可定义一个名为ResizeControls的通用过程,并放在窗体的Resize事件中进行调用。
  Private Sub ResizeControls()
  Dim n As Integer
  On Error Resume Next ’容错
  For n = 0 To CC - 1
  Controls(n).Move a(n, 1) * k, a(n, 2) * k
  Controls(n).FontSize = a(n, 5) * k
  Controls(n).Width = a(n, 3) * k
  Controls(n).Height = a(n, 4) * k
  Next n
  FontSize = a(n, 5) * k ’窗体字号
  End Sub
   3. 特殊情况的处理
  课件启动时,如果屏幕分辨率较低应避免窗口的尺寸超出屏幕的范围。
  窗口最大化时会以屏幕的尺寸为依据进行双向调整,这样就破坏了原有窗口的纵横比例。如果想让窗口最大化但又不想破坏原窗口的比例,那么在最大化按钮被单击时,首先要取消最大化状态,然后依据窗口的宽高比与屏幕的宽高比之间的大小关系使窗口偏大的一边与屏幕对齐,另一边则按比例放大。
  当窗口的高度被调整到非常小,甚至只剩标题栏的高度时,应以窗口的最小宽度(有最大化等按钮时,其值约为1680 Twips)为准调整窗口的高度。
  
  上述情况的处理以及设计思想的实现可在以下调整窗口大小的Resize事件中得以体现。
  Private Sub Form_Resize()
  Static LastWidth As Integer, MiniHeight As Integer
  If Width > Screen.Width Or Height > Screen.Height Then WindowState = vbMaximized
  If WindowState = vbMinimized Then Exit Sub
  If WindowState = vbMaximized Then
  WindowState = vbNormal
  Move 0, 0
  If Screen.Width / Screen.Height >= a(CC, 3) / a(CC, 4) Then
  Height = Screen.Height
  Else
  Width = Screen.Width
  End If
  End If
  MiniHeight = a(CC, 4) / a(CC, 3) * 1680 Height - ScaleHeight
  If Height < MiniHeight Then Height = MiniHeight ’最小窗口也成比例
  If LastWidth <> Width Then ’宽度变化
  k = Width / a(CC, 3)
  Height = a(CC, 4) * k Height - ScaleHeight
  Else ’高度变化
  k = ScaleHeight / a(CC, 4)
  Width = a(CC, 3) * k
  End If
  If LastWidth = Width Then Exit Sub
  LastWidth = Width
  Call ResizeControls
  Call HSB_Change ’执行本范例程序所需
  End Sub
   4. 其它问题的应对策略
  如果在课件界面中要动态绘制图形,绘图时应以绘图对象的相对尺寸为坐标,这样可以保证绘图对象大小变化时其刻度数不变,从而使绘出的图形在窗口大小变化时也能同比例缩放。
  如果界面中要显示图像,可采用以下方法来实现缩放。
  方法一:用图像控件Image作为对象。Image控件有拉伸属性Stretch,只要将其设置成True后显示在其中的图像就会随图像框的伸缩而自动拉伸,始终呈现给用户的是一幅完整的图像。
  方法二:用PaintPicture方法。先将图像添加到一个Image控件,并将其Visible属性设置成False,在Resize事件中从该控件中取出图像并用PaintPicture方法粘满所要显示的对象(以下范例中使用的就是这种方法)。
  
   四、VB范例课件
  
  为了验证有关设计思想和实现技术,本文提供了这款模拟小球在有阻尼的情况下弹跳运动的课件。其数学模型为y=A.|cos(t)|.e-t/B,课件运行窗口如图1所示。
  
   1. 界面设计
  启动VB后在窗体中添加以下控件:图像框Img(Stretch=True、Visible=False,并添加一幅图片)、文本框Txt(MultiLine=True,并设置好文本)、图片框Pic(Align=2)、形状Shp(设置成圆并填充成红色)、计时器Timer1(Interval=10)、框架Frame1以及放入框架中的滚动条HSB(Min=1,Max=100)和有关的标签。
   2. 编写代码
  为实现本课件的功能,除上述三段通用代码外,还需要编写以下代码:
  Private Sub HSB_Change()
  Lab2.Caption = "-t/"
其他文献
阅读,看起来只是阅读本身,实际上它包含了思考、推理、想象和判断等,还包含理解、认同和信仰等。在读一本书时,我们不是暂时进入文本的世界,而是在生成的阅读世界里遨游,我们的视野不断被打破,又不断形成;不断修正,又不断扩充;不断更新,又不断提升阶层。通过不断增加思维弹性的阅读,我们的精神世界会逐步树立起一个有力的支架,它让我们站得直、站得稳、守得住。很显然,我们不是为了阅读别人而读,我们阅读是期待通过对
【摘 要】如何通过有效的培训,提升教师尤其是农村中小学教师的教育科研水平,是区域教育必须直面的课题。“新沂名师成长工程”通过“3-6-n”培训模式,促进教师发现和提出问题,让教师带着问题进课堂,带着问题离开课堂。该培训模式借助问题推动教师学会课堂观察、教学反思,进行经验总结,实现理论提升。  【关键词】同课异构;课堂观察;教师培训  【中图分类号】G451 【文献标志码】B 【文章编号】1005-
江苏诗人傅荣生,性情沉静淡泊,谦和自持。他的诗作多为短章,却自有一种鸢飞鱼跃的大气象。文本想象力出色,善于描摹,句式精简,言近旨远,发散着静谧空灵的东方美学风神和鲜明的民族精神,复撷取西方现代诗学技法,转益多师而自铸新辞。在他那里,词语、辞格、意象、意境的灵活运用,是错综交织多而不乱的。读他的诗,如闻绿水溅溅,如听青山杜鹃,满目生春,饶具风神。正是他优越的天赋、出色的悟性,再加苦吟的精神、耐心的打
【摘 要】 在新课程实验教学中,作者在新课程标准的指引下启用新方法、探索新思路、构筑新课堂。深深感受到新课程为教师、学生所带来的巨大的创造空间,为课堂所注入的生命活力。但实验中也遇到了一些困惑,并做了一番反思。  【关 键 词】 新课程;改革;教学  参加课改实验多年以来,作为一线教师,我深感自己责任重大。面对家长的期望,领导的关心,孩子们的信任,心中总涌动着一股激情:要让孩子们快乐学习,要把他们
隆 重  小白:“我前几天去美国旅游了。”  阿呆:“那你有没有去隆重这个地方?”  小白:“啊,隆重?我没听说过这个地方呢!”  阿呆:“哎呀,那么多活动都在美国隆重举行,你没去真是太可惜了。”  四川省成都市营门口小学 晏妮/荐  告状  妞妞告诉妈妈:“今天客人来家里玩的时候,哥哥放了一颗图钉在客人的椅子上,被我看见了。”  妈妈:“那你是怎么做的呢?”  妞妞:“我在旁边站着,等客人刚要
近日从上海市教委获悉,新学期上海将编制小学中高年级“等第制”评价指南,力求覆盖小学全部年级,并由语文、数学、英语学科向其他学科拓展;一、二年级采用新版《学生成长记录册》,将学生各学科课程学习情况分学业成果、学习表现、学习兴趣三个维度进行等第综合评价,从而深入实施“基于课程标准的教学与评价”。
【摘 要】 中年级是学生从写话到习作的过渡阶段。仿写,是小学生由阅读通往习作的桥梁。教师可以从好词、佳句、全文等方面入手,引导学生且读且作,从而提高学生的写作能力。  【关 键 词】 仿写;聚焦好词;锁定佳句;回归全文;中年级  王崧舟老师说:一堂好的语文课得有“三味”,其中最关键的就是“语文味”,即指守住语文的本体。语文的本体是指,用怎样的语言形式来承载思想内容,即“怎么写”。无论“圈点批注、摘
  
【摘要】学校紧紧围绕“以生为本,与时俱进,培养面向未来的人才”这一育人目标,坚持立德树人,以传承红色基因为己任,致力培养“爱国、责任、健体”的广附学子。近年来,探索出适合本校发展的“国防教育’2 N’模式”(“2 N”,“2”为国防课程加国防活动,“N”是国防教育立足的“N”个平台),并取得了可喜成绩。  【关键词】小学;国防教育;“2 N”模式;国防课程;国防活动  一、特色建设缘起  广州大学
语海泛舟,传道难觅似安庆者。赤炎稻田,少年乘风破浪负重行。斜阳草树,幽僻麦梗,人道书香尚浓。忆往昔,山黄叶飞,心似庄生晓梦。  春蚕笃定,瑰虻比兴,执鞭由道金陵。三十二年,授业解惑,吟啸且徐行。顺天应时,逆境昂扬,弟子身心相映。凭谁问:“庆哥老矣,尚能怒放否?”  夏丏尊先生在《我之于书》中写道:“我不喜欢向别人或图书馆借书,借来的书,我好像过不来瘾似的,必要是自己买的才满足。”在关注、仰慕汲安庆