Software 版 (精华区)

发信人: checcy (老巴夺), 信区: Software
标  题: 在Visual FoxPro程序中实现动态提示
发信站: 哈工大紫丁香 (Sat Apr 11 13:42:37 1998), 转信

         在Visual FoxPro程序中实现动态提示
                   □贵阳 李波

 所谓动态提示,是指当鼠标指针移动到某个控件上时,
 在鼠标指针的附近出现与此控件相应的简短提示。当
 鼠标指针从该控件上移开时,提示信息即消失。具有
 此种功能的应用程序可以帮助使用者快速掌握程序中
 各控件的功能。笔者在开发Visual FoxPro的应用程序
 中,增加了此项功能,不仅大大提高了程序的易学性
 ,而且也使应用程序增色不少。



 下面介绍在Visual FoxPro 3.0应用程序中增加此项
 功能的方法。

      一、使用的控件及其相关属性

          控 件
                       属 性
                                    属性值
          表单
                   Name
                   ScaleMode
                   Left,Top
                                Form1
                                3
                                依需要而定
          标签
                   Name
                   AutoSize
                   Visible
                   BackColor
                                Label1
                                .T.
                                .F.
                                255,255,20
         命令按钮
                   Name
                   visible
                   Left,Top
                                Command1
                                .T.
                                依需要而定
          文本框
                   Name
                   Visible
                   Left,Top
                                Text1
                                .T.
                                依需要而定
          复选框
                   Name
                   Visible
                   Left,Top
                                Check1
                                .T.
                                依需要而定



      二、实现方法
      实现动态提示功能的关键是在各控件的MouseMove
      方法中编程。当鼠标指针在某个控件上移动时,触
      发MouseMove事件。在此控件的MouseMove方法中,
      可获得有关鼠标指针的坐标信息。根据鼠标的位置,
      改变标签Label1的Left、Top以及Caption属性后,
      再将Lable1的Visible属性置为.T.,即可在控件上
      的鼠标指针附近显示出相应的提示信息。在表单
      Form1的MouseMove方法中,将Label1的Visible属
      性值设为.F.,即可实现在鼠标指针从控件上移开
      后,提示信息消失。在下面的程序中,将详细说明
      如何在命令按钮、文本框和复选框的MouseMove方法
      中编程,来为它们添加相应的动态提示。

      程序清单如下:
      Form1.MouseMove
      LPARAME nButton,nShift,nXCoord,nYCoord
      thisform.Label1.Visible=.F. &&隐藏提示条
      Command1.MouseMove
      LPARAMETERS nButton, nShift, nXCoord, nYCoord
      thisform.label1.caption=″命令按钮″ &&设
      置提示内容
      if (thisform.label1.width+nXCoord
      <thisform.width) 
      &&判断提示条是否超出窗口的右边界
      thisform.label1.left=nXCoord &&设置提示条
      顶点行坐标
      else
      thisform.label1.left=nXcoord-thisform.
      label1.width
      endif
      if (thisform.label1.height+nYCoord+20
      <thisform.height)
      &&判断提示条是否超出窗口的下边界
      thisform.label1.top=nYCoord+20 &&设置提
      示条顶点列坐标
      else
      thisform.label1.top=nYCoord-20
      endif
      thisform.label1.visible=.T. &&显示提示内容

      Text1.MouseMove
      LPARAMETERS nButton, nShift, nXCoord, nYCoord
      thisform.label1.caption=″文本框 ″ &&设置
      提示内容
      if (thisform.label1.width+nXCoord<thisform.
      width)
      &&判断提示条是否超出窗口的右边界
      thisform.label1.left=nXCoord &&设置提示条
      顶点行坐标
      else
      thisform.label1.left=nXcoord-thisform.
      label1.width
      endif
      if (thisform.label1.height+nYCoord+20
      <thisform.height) 
      &&判断提示条是否超出窗口的下边界
      thisform.label1.top=nYCoord+20 &&设置
      提示条顶点列坐标
      else
      thisform.label1.top=nYCoord-20
      endif
      thisform.label1.visible=.T. &&显示提示内
      容

      Check1.MouseMove
      LPARAMETERS nButton, nShift, nXCoord, nYCoord
      thisform.label1.caption=" 复选框 " &&设置提
      示内容 
      if (thisform.label1.width+nXCoord<thisform.
      width) 
      &&判断提示条是否超出窗口的右边界
      thisform.label1.left=nXCoord &&设置提示条顶
      点行坐标
      else
      thisform.label1.left=nXcoord-thisform.label1.
      width
      endif
      if (thisform.label1.height+nYCoord+20
      <thisform.height) 
      &&判断提示条是否超出窗口的下边界
      thisform.label1.top=nYCoord+20 &&设置提示
      条顶点列坐标
      else
      thisform.label1.top=nYCoord-20
      endif
      thisform.label1.visible=.T. &&显示提示内容


                           GO BACK


-- 
Chengyan Che - Software Freelancer, Harbin, P.R.China
-----------------------------------------------------------
Do you need a software developer for your project or just
for your killer money-making idea? Drop me a line and let
me know how I can help you out! 
mailto:checcy@public.hr.hl.cn
ICQ:5116726

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.836毫秒