分享

vfp背景声音实现

 万古皆空 2009-06-19
1、给程序添加背景音乐   在利用Visual Foxpro 编制应用程序时,如果能给应用程序添加背景音乐,无疑是件锦上添花的事,背景音乐能给应用程序增色不少。不般的方法是利用OLE(对象嵌入与链接)进行嵌套。具体方法是选择“表单控件”上的“OLE容器控件”,将其拖到表单上,再在“插入对象(Insert Object)”窗口中选择“媒体剪辑”,调用“媒体播放机”,利用它来播 
放出音乐,同时把播放任务条隐藏起来。利用这种方法要占用大量系统资源,且要利用到外部程序“媒体播放机”,不是一个好方法。其实我们可以利用VFP的动态链接库foxtools.fll来轻松
  实现背景音乐,而且极少占用系统资源。foxtools.fll位于VFP的安装目录中,如下例中假设安装目录为C:VFP。假设Visual FoxPro 系统安装于C:VFP目录中。首先准备一WAV格式的背景音乐文件(这里以back.wav这例),放于指定目录如C:TEST中;可在表单(Form)的Activate事件中加入如下代码:
  public sound set defa to C:TEST
  set Library to c:vfp oxtools.fll &&指定FoxPro 动态链接库
  sound=regfn("SndplaySound","CI","I","Mmsystem")
  =callfn(sound,"back.wav",1)
  为了在表单释放时关闭音乐, 同时在LostFocus事件中加入代码:
  =Callfn(sound," ",10) set library to
  2、通过程序实现自动选择打印机
  如果单位里的局域网上安装有多台网络打印机,在使用VFP 6.0编制的程序进行打印操作时,可以选择其中的任意一台空闲的网络打印机进行打印,只须在执行命令:Report From … To Printer 之前,先执行:Set Printer To Name Getprinter(),就可以调用操作系统的“打印设定”对话框,用户利用该窗口即可达到灵活选择空闲打印机进行打印输出的功能。
  3、实现文字动画效果
  我们可以使用VFP来实现文字动画效果,这里笔者就以让文字逐个从屏幕底部飞入为例,来说明VFP在实现文字动画方面的功能。首先建立一个新的表单(Form1),设置表单的Backcolor属性为RGB(192,192,192),然后在表单上建立四个标签(Label1、Label2、Label3和Label4)和一个定时器(Timer1)。
  设置四个标签的Caption(标题)属性分别为‘文’、‘字’、‘动’、‘画’,Backstyle属性为0(透明),Fontsize属性为26,Autosize属性为.T.(自动调整大小);
  设置定时器的Interval(定时间隔)为100,Enabled属性为.T.(不可用)。我们假设Label1、Label2、Label3和Label4的Autosize属性为.T.,Alignment属性为0(左边)。
  下面就是实现该功能的部分源代码:
  Public Top,Num
  Num = 1
  Top = Thisform.Label1.Top
  For I = 1 To 4
  LabelT = 'Label' + STR(i,1) + '.Top'
  Thisform.&LabelT = Thisform.Height
  Endfor
  Thisform.Timer1.Enabled = .T.
  LabelT = 'Label' + STR(Num,1) + '.Top'
  If Thisform.&LabelT <= Top + 20
  Thisform.&LabelT = Top
  Num = Num + 1
  If Num = 5
  Thisform.Timer1.Enabled = .F.
  Endif
  Return
  Endif
  Thisform.&LabelT = Thisform.&LabelT – 20
  4、实现页面的自动换页功能
  当有大量数据需要录入时,可以使用页框(PageFrame)控件,为了实现页面的自动换页,应在页面上的最后一个控件(如文本框)的LostFocus事件中加上以下代码:
  thisform.WIZFRAME1.ACTIVEPAGE=2
  thisform.WIZFRAME1.page2.ZCZJ1.text1.setfocus
  其中的“2”要根据页数改变,如在第二页的最后一个对象中的LostFocus中加入如下代码:
  thisform.WIZFRAME1.ACTIVEPAGE=3
  thisform.WIZFRAME1.page3.CKGJ1.text1.setfocus
  这样的好处是录入员录到这页的最后一项时,系统会自动分页。
  5、粘贴VFP顶层表单
  当你将表单设置为顶层表单并独立运行于Windows下时,会发现表单中复制粘贴功能失效,这给实际工作造成极大的不便,从而使编制的软件达不到专业水准。其实,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。解决的办法是可在表单的控件(本文举例为文本框)中,为KeyPress Event编写如下事件处理程序,该事件处理程序首先将选择内容复制到Windows剪贴板上,然后再将剪贴板上的内容添加到控件中。
  KeyPress Event
  LPARAMETERS nKeyCode, nShiftAltCtrl
  if nkeycode=3
  && CTRL+C 复制
  -cliptext=this.seltext
  endif
  if nkeycode=22
  && “CTRL+V” 粘贴
  do case
  case this.selstart=0
  this.value=-cliptext+this.value
  case this.selstart〉=1 and this.selstart〈=len(this.value)
  this.value=subs(this.value,1,this.selstart)+-cliptext+subs(this.value,this.selstart+1)
  endcase
  endif
  thisform.grid1.column1.setfocus()
  sele recetem
  if not eof()
  skip
  endif
  thisform.refresh

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多