在VFP、VB应用程序中激活鼠标功能

鼠标是WINDOWS环境下不可缺少的输入工具,在应用程序中灵活地使用鼠标功能,会给工作带来极大的 方便.VISUAL FOXPRO6.0和VISUAL BASIC6.0是MICROSOFT VISUAL STUDIO98面向对象的可视化开发环境, 它功能非常强大,而且设计程序简单实用.它提供了与鼠标操作有关的事件和API函数,所以编写鼠标功能 程序就变得非常简单,只需在程序中调用这些事件和API函数即可.

一.与鼠标有关的事件和WINDOWS API函数:

1.MOUSEDOWN 按下鼠标事件.

当用户按下鼠标上的任一按钮时,就会引发该事件.

调用格式:

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

①BUTTON参数是用来指示鼠标按钮的状态.它用二进制来表示.参数值含义如下:

001:左按钮按下. 010:右按钮按下.

011:左右按钮都按下. 000:都没按下.

100:中间按钮按下. 111:三个按钮都按下.

②SHIFT参数用来指示SHIFT,CTRL和ALT三个键的状态.参数值含义如下:

001:SHIFT按下. 010:CTRL按下.

110:CTRL和ALT按下. 011:SHIFT和CTRL按下.

100:ALT按下. 101:SHIFT和ALT按下.

111:SHIFT,CTRL和ALT都按下.

③参数X和Y指示鼠标在对象上按下时的位置.

2.MOUSEUP 释放鼠标事件.

当用户松开鼠标按钮时,就会引发该事件.

调用格式:(参数含义与MOUSEDOWN过程相同.)

Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)

3.MOUSEMOVE 移动鼠标事件.

当用户将鼠标移到新位置时,就会引发该事件.

调用格式:(参数含义与MOUSEDOWN过程相同.)

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)

4.WINDOWS API的SwapMouseButton()函数对换鼠标的左右键.

语法格式:

Private Declare Function SwapMouseButton Lib "USER32" Alias "SwapMouseButtonA" (ByVal BSWAP As Integer) As Integer

参数BSWAP含义:如为TRUE,则左按钮产生右按钮的鼠标消息,右按钮产生左按

钮的鼠标消息.如为FALSE,则正常解释鼠标按钮的输入.

返回值含义:如为TRUE,说明鼠标的左右按钮功能已经对调.如为FLASE,说明鼠

标按钮功能恢复原状态.

─────────────────────────────────────

二.VISUAL FOXPRO应用实例:

实例一:利用鼠标事件在窗体上画圆。

当鼠标左键按下时可以作图,而当鼠标左键释放时,则无法作图;而当鼠标移动时,

则画出图来。把鼠标左键按下与否作为作图的开关,鼠标移动就连续画图,本例是

连续画出圆来。

在窗体FORM1建立如下事件:

Form1LPARAMETERS nButton, nShift, nXCoord, nYCoord

Form1.Init事件,建立一个全局变量mark,用于是否画图的开关变量,

当mark为真时,可以作图,否则不能作图。

public mark

thisform.scalemode=3

thisform.drawwidth=2

Form1.MouseDown事件,将mark设置为真,表示可以画图。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

mark=.t.

Form1.MouseUp事件,将mark设置为假,表示不能画图。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

mark=.f.

Form1.MouseMove事件,移动鼠标连续画圆。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

if mark and bittest(nbutton,0)

thisform.circle(20,nxcoord,nycoord)

endi

实例二:利用鼠标事件切换图标按钮中的图标。

COMMAND1控件的PICTURE属性是C:\B.BMP

Form1.load事件,定义开关变量mouse_down。

public mouse_down

mouse_down=0

Form1.MouseDown事件,显示鼠标按下时的图标。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

THISFORM.COMMAND1.PICTURE="C:\A.BMP"

mouse_down=1

Form1.MouseUp 事件,显示鼠标松开时的图标。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

THISFORM.COMMAND1.PICTURE="C:\B.bmp"

Form1.MouseMove事件,判别鼠标是否离开图形按钮,若离开,则显示松开时的图标。

LPARAMETERS nButton, nShift, nXCoord, nYCoord

if mouse_down=1

if (nXCoord$#@60;0.or. nXCoord$#@62;thisform.command1.width) .or. (nYCoord$#@60;0 .or. nYCoord$#@62;thisform.command1.height)

THISFORM.COMMAND1.PICTURE="C:\B.BMP"

endi

endi

时间: 2024-10-28 20:55:15

在VFP、VB应用程序中激活鼠标功能的相关文章

vb.net程序中如何实现用户名,密码访问局域网文件夹影射

问题描述 我最近写了个客户端自动更新安装的程序现在有个问题,希望大家帮助我在客户的环境中,服务器的某个文件夹做成影射成比如Z:最新文件就放着这个Z盘下可是每次用户重起机器之后必须手动连接一下这个Z盘我想问,有没有什么办法可以在程序中,用用户名和密码来连接这个Z盘? 解决方案 解决方案二:up解决方案三:各位高手同仁,帮帮忙吧解决方案四:将服务器的某个文件夹配置成虚拟目录

WPF应用程序中的发声功能

几个星期以前,我坐在一辆崭新的丰田普锐斯汽车中,听着租车公司的销售代理讲解着仪表盘上遍布 的陌生控制开关和指示器."哇,"我想,"虽然技术和车一样都那么陈旧了,制造商仍继续美化着用 户界面". 从最广义的层面上说,用户界面是人机交互的地方.虽然这一概念与技术本身一样历史悠久,但用户 界面作为一种艺术形式大放异彩倚仗的却是个人计算机革命. 现在,恐怕只有很小一部分个人计算机用户能够记得 Apple Macintosh 和 Microsoft Windows 图形 用户

Java程序中的延迟加载功能使用_java

使用多个对象或者大数据结构时,一种提升其性能的方式是运用延迟加载或赋值(来实现).将费时的操作尽可能的缩短的想法,从未实现.我通过一些例子来说明延迟加载技术在Java中如何运用,给予一些指引以在其他语言中能更易(使用)并作为核心语言的一部分. 一种使用场景是通过JTable来展示数百个包含元数据和测量值得域对象.初始化我们的域对象在内存中能保存两种类型的对象,即便在表格中仅显示部分元数据.构建该表格将花费数秒钟的时间,(但)我们可以接受再次展示数百项(数据).在做了一些分析过后,我们改进了我们的

如何在ASP.NET MVC应用程序中实现下载功能

上次Insus.NET有在MVC应用程序实现了上传文件的功能<MVC应用程序显示上传的图片> http://www.cnblogs.com/insus/p/3597543.html 有上传就有下载.本篇博文是把上传的文件以列表的形式显示View视图上,然后用户可以点击下载. 为了解更多的内容,建议你先看上链接一篇. 在MVC应用程序的Entity目录下,找到和打开FileLibraryEntity.cs,添加一个返回DataTable的方法: #1写一个GetUploadFileByPrima

VC++编程隐藏计算机中的鼠标

在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.那么我们能否通过编制程序来控制系统的鼠标,例如隐藏计算机中的鼠标呢?这个问题的答案是肯定的.这里主要是通过一个Windows API函数来实现的.下面以一个Visual C++的实例来介绍如何实现这个功能.需要读者朋友们注意的是本代码具有一定的危险性,程序运行后你将无法用鼠标控制您的计算机,这时候需要对计算机的当前用户名进行注销或重新启动计算机. 一.实现方法 Win

集成Windows本地应用到Eclipse RCP程序中

Windows 应用程序非常丰富,而有时我们的 Eclipse RCP 程序所需要的一些功能已经有一些现有的 Windows 本地应用程序的实现,我们希望能够在我们的 RCP 程序中重用这些功能.一种最简单的重用方法就是直接在我们 RCP 窗口中嵌入本地应用程序窗口.要使得一个 Windows 本地应用程序能够在我们的 RCP 程序中运行,我们可以使用 Windows 提供的 reparent 机制.利用这种机制实现窗口嵌入的主要过程是:首先要在我们的程序中启动要嵌入的 Windows 程序,然

如何在程序中嵌入FOP

FOP使用方式 FOP有3种使用方式,分别为命令行,程序嵌入,XT 嵌入,这里将主要介绍如何在程序中嵌入FOP功能.将XML文件转换为PDF实际上分为2步,第1步是利用XSLT将XML转换为XSL-FO,第2步是将XSL-FO转换为PDF.这里不想讲述XSLT和XSL-FO有关的知识(这方面的文档相当多),而只将讲述如何进行第2步的转换编程. 在程序中嵌入FOP 1. 范例simple.fo文件 上述是一个很简单的fo文件,将显示两块文字,具体的fo语法请读者自己查看相应资料. 2. 简单调用F

《Android 应用案例开发大全(第二版)》——6.7节获取第三方程序中可调用的窗口

6.7 获取第三方程序中可调用的窗口 Android开发权威指南(第二版) 第X问1 源代码目录:src/ch06/InvokeSinaWeibo 现在很多程序中使用的功能并未包含在程序本身,都是通过各种插件方式获得的其他程序的资源.例如,经常会使用到的"分享"功能就是调用了系统中所有可以处理某类资源的窗口来实现的,如果这样的窗口多于一个,就会显示一个选择列表. 如果想利用其他程序中的资源,首先要了解程序对外的接口.但很多程序并没有公开相应的接口,在这种情况下,就需要通过该程序的APK

linux下某程序中实现对进程的实时流量监控功能

问题描述 linux下某程序中实现对进程的实时流量监控功能 求大牛赐教 现在开发了一个程序,在linux下跑,想在里面加一个对特定进程的网络流量监控,实时统计进程流量大小 现在想到的办法就是用libpcap库,对应/proc里面文件按照pid 端口号 数据包 数据大小 进行统计得出当前流量大小. 目前有如下问题: 1.程序中已有功能中已经使用了libpcap去抓去一段数据包然后输出libpcap文件,如果按照上述办法,会不会造成再用libpcap采集数据包出问题?或者说libpcap可不可以多次