All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
按实际要求格式化显示DataGrid中字段值的方法_[Asp.Net教程]
Asp.Net2.0数据库基本操作方法学习_.net资料_编程技术
使用GROUP,BY子句的规则_[SQL,Server教程]
一步步教你配置SQL SERVER合并复制(一)概念介绍_[SQL Server教程]
查询同一表内多字段同时重复记录的SQL语句_[SQL Server教程]
SQL语句中的布尔表达式_[SQL,Server教程]
新标准的熟悉和入门_[Html教程]
实例:新手如何使用PHP创建RSS阅读器_php资料_编程技术
C#教程:COM+组件的创建与应用
ASP.NET技巧:ASP.NET2.0泛型和匿名方法_[Asp.Net教程]
Reading number is top 10 pictures
Ashlynn Brooke photograph of a group3
Very beautiful interior decoration
Seductive beauty of crime1
支持判处贩卖儿童者死刑
mythology hero1
非笑不可:最强爆笑图片精选
餐桌上的鱼
Chinese paper-cut grilles art appreciation4
Angie Chiu vijara myth1
有种屌丝级别的好妹子
Download software ranking
Tram sex maniac 2 (H) rar bag15
Tram sex maniac 2 (H) rar bag3
Unix video tutorial9
Unix video tutorial1
Sora aoi, the nurse, uniform ,nursing assistant
尖东毒玫瑰A
jdk1.6 for windows
Unix video tutorial17
网络管理员第三版
C#高级编程(第4版)
aaa published in(发表于) 2014/7/19 0:13:43 Edit(编辑)
delphi限制鼠标移动的范围

delphi限制鼠标移动的范围

delphi限制鼠标移动的范围

限制鼠标移动的范围

有时为了操作方便,需要将鼠标的移动范围限制在一定区域内。本实例的窗体中有两个按钮,当单击第1 个按钮后,鼠标被限制在第2 个按钮上移动;当单击第2 个按钮后,鼠标可以在屏幕上自由移动。

函数ClipCursor 可以限定鼠标活动区域。该函数原型如下:

BOOL ClipCursor( CONST RECT *lpRect ) ;

其中参数RECT 为指向一个矩形区域的指针,坐标为屏幕坐标。如果设置为0,则鼠标可以在整个屏幕中自由移动。

因为ClipCursor 需要屏幕坐标作为参数,所以通过调用函数MapWindowPoints 将点相对坐标转换为屏幕坐标。该函数原型如下:

int MapWindowPoints(

HWND hWndFrom, // handle of window to be mapped from

HWND hWndTo, // handle of window to be mapped to

LPPOINT lpPoints, // address of structure array with points to map

UINT cPoints // number of structures in array

);

其中的4 个参数含义如下。

• hWndFrom:转换前作为坐标原点的窗体,如果为NULL 或HWND_DESKTOP 则表示屏幕。

• hWndTo:转换后作为坐标原点的窗体,如果为NULL 或HWND_DESKTOP 则表示屏幕。

• lpPoints:存储需要转换的点的数组地址。

• cPoints:需要转换的点的个数。

下面使用一个示例来说明如何限制鼠标移动位置。

(1)创建一个新的Delphi 项目,给窗体Form1 添加两个Button 组件,Caption 属性分别设定为“将鼠标限定在下面的按钮中移动”和“取消鼠标移动范围的限定”,按钮的名称保留默认值。

(2)响应“将鼠标限定在下面的按钮中移动”按钮的单击事件,代码如下:

//单击“将鼠标限定在下面的按钮中移动”限制鼠标移动范围

procedure TForm1.Button1Click(Sender: TObject);

var

rtButton2: TRect;

begin

//获取Button2 的坐标

rtButton2 := Button2.BoundsRect;

//将坐标转换为屏幕坐标

MapWindowPoints(handle, 0, rtButton2, 2);

//将鼠标移动的范围限制在Button2 按钮上

ClipCursor( @rtButton2 );

end ;

(3)响应“取消鼠标移动范围的限定”按钮的单击事件,代码如下:

//单击“取消鼠标移动范围的限定”按钮取消限制

procedure TForm1.Button2Click(Sender: TObject);

begin

//取消鼠标移动范围的限制

ClipCursor( 0 );

end;




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.