易语言怎么限制只能在窗体内移动
1不要屏幕坐标,就是窗体被创建的时候,初始化窗体,重定义窗体内的坐标,然后鼠标只能在窗体内移动,如果超出窗体的范围,则窗体内的坐标就无法显示...
1不要屏幕坐标,就是窗体被创建的时候,初始化窗体,重定义窗体内的坐标,然后鼠标只能在窗体内移动,如果超出窗体的范围,则窗体内的坐标就无法显示
展开
2个回答
展开全部
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.如果 (按钮1.标题 = “开始限制”)
时钟1.时钟周期 = 10
按钮1.标题 = “取消限制”
.否则
按钮1.标题 = “开始限制”
.如果结束
.子程序 _时钟1_周期事件
.局部变量 局_矩形, 矩形_
.局部变量 局_坐标, 坐标_
.局部变量 局_窗口句柄, 整数型
.局部变量 局_限制, 逻辑型, 静态
局_窗口句柄 = _启动窗口.取窗口句柄 () ' 也可以用这个来取句柄: 取鼠标所在窗口句柄 (取鼠标水平位置 (), 取鼠标垂直位置 ())
.如果真 (按钮1.标题 = “取消限制”) ' 用这个也可以: 判断是否按过某键 (#F1键) < 0
.如果真 (局_限制)
返回 ()
.如果真结束
取矩形 (局_窗口句柄, 局_矩形)
取鼠标所在窗口坐标 (局_窗口句柄, 局_坐标)
移动矩形 (局_矩形, 局_坐标.横向位置, 局_坐标.纵向位置)
置限制鼠标所在矩形 (局_矩形)
局_限制 = 真
返回 ()
.如果真结束
.如果真 (按钮1.标题 = “开始限制”) ' 用这个也可以: 判断是否按过某键 (#F2键) < 0
.如果真 (局_限制 = 假)
返回 ()
.如果真结束
关闭矩形 (0)
局_限制 = 假
时钟1.时钟周期 = 0
.如果真结束
以下是自定义数据类型:
.版本 2
.数据类型 矩形_, , , RECT
.成员 左边, 整数型, , , Left
.成员 顶边, 整数型, , , Top
.成员 右边, 整数型, , , Right
.成员 底边, 整数型, , , Bottom
.数据类型 坐标_, , , POINTAPI
.成员 横向位置, 整数型, , , x,横向位置
.成员 纵向位置, 整数型, , , y,纵向位置
以下是DLL命令:
.版本 2
.DLL命令 取矩形, 整数型, "user32", "GetClientRect", , ,GetClientRect
.参数 窗口句柄, 整数型
.参数 矩形区域, 矩形_
.DLL命令 取鼠标所在窗口句柄, 整数型, "user32.dll", "WindowFromPoint", , WindowFromPoint
.参数 横坐标, 整数型, , xPoint,x点值
.参数 纵坐标, 整数型, , yPoint,y点值
.DLL命令 移动矩形, 整数型, "user32", "OffsetRect", , ,OffsetRect
.参数 目标矩形, 矩形_
.参数 水平偏移量, 整数型
.参数 垂直偏移量, 整数型
.DLL命令 置限制鼠标所在矩形, 整数型, "user32.dll", "ClipCursor", , , 非零表示成功,零表示失败 ClipCursor
.参数 矩形区域, 矩形_, 传址, lpRect,指定一个矩形,用像素屏幕坐标系统表示
.DLL命令 关闭矩形, 整数型, "user32.dll", "ClipCursor", , , 非零表示成功,零表示失败 CloseClipCursor
.参数 矩形区域, 整数型, , lpRect,指定一个矩形,用像素屏幕坐标系统表示
.DLL命令 取鼠标所在窗口坐标, 整数型, "user32.dll", "ClientToScreen", , , 非零表示成功,零表示失败 ClientToScreen
.参数 窗口句柄, 整数型, , hwnd,要取出区域坐标的窗口句柄
.参数 位置变量, 坐标_, , lpPoint,参见相关帮助
.DLL命令 判断是否按过某键, 整数型, "user32", "GetAsyncKeyState", , ,按过大于0,否则小于0
.参数 键代码, 整数型, , vKey Long,欲测试的虚拟键的键码
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.如果 (按钮1.标题 = “开始限制”)
时钟1.时钟周期 = 10
按钮1.标题 = “取消限制”
.否则
按钮1.标题 = “开始限制”
.如果结束
.子程序 _时钟1_周期事件
.局部变量 局_矩形, 矩形_
.局部变量 局_坐标, 坐标_
.局部变量 局_窗口句柄, 整数型
.局部变量 局_限制, 逻辑型, 静态
局_窗口句柄 = _启动窗口.取窗口句柄 () ' 也可以用这个来取句柄: 取鼠标所在窗口句柄 (取鼠标水平位置 (), 取鼠标垂直位置 ())
.如果真 (按钮1.标题 = “取消限制”) ' 用这个也可以: 判断是否按过某键 (#F1键) < 0
.如果真 (局_限制)
返回 ()
.如果真结束
取矩形 (局_窗口句柄, 局_矩形)
取鼠标所在窗口坐标 (局_窗口句柄, 局_坐标)
移动矩形 (局_矩形, 局_坐标.横向位置, 局_坐标.纵向位置)
置限制鼠标所在矩形 (局_矩形)
局_限制 = 真
返回 ()
.如果真结束
.如果真 (按钮1.标题 = “开始限制”) ' 用这个也可以: 判断是否按过某键 (#F2键) < 0
.如果真 (局_限制 = 假)
返回 ()
.如果真结束
关闭矩形 (0)
局_限制 = 假
时钟1.时钟周期 = 0
.如果真结束
以下是自定义数据类型:
.版本 2
.数据类型 矩形_, , , RECT
.成员 左边, 整数型, , , Left
.成员 顶边, 整数型, , , Top
.成员 右边, 整数型, , , Right
.成员 底边, 整数型, , , Bottom
.数据类型 坐标_, , , POINTAPI
.成员 横向位置, 整数型, , , x,横向位置
.成员 纵向位置, 整数型, , , y,纵向位置
以下是DLL命令:
.版本 2
.DLL命令 取矩形, 整数型, "user32", "GetClientRect", , ,GetClientRect
.参数 窗口句柄, 整数型
.参数 矩形区域, 矩形_
.DLL命令 取鼠标所在窗口句柄, 整数型, "user32.dll", "WindowFromPoint", , WindowFromPoint
.参数 横坐标, 整数型, , xPoint,x点值
.参数 纵坐标, 整数型, , yPoint,y点值
.DLL命令 移动矩形, 整数型, "user32", "OffsetRect", , ,OffsetRect
.参数 目标矩形, 矩形_
.参数 水平偏移量, 整数型
.参数 垂直偏移量, 整数型
.DLL命令 置限制鼠标所在矩形, 整数型, "user32.dll", "ClipCursor", , , 非零表示成功,零表示失败 ClipCursor
.参数 矩形区域, 矩形_, 传址, lpRect,指定一个矩形,用像素屏幕坐标系统表示
.DLL命令 关闭矩形, 整数型, "user32.dll", "ClipCursor", , , 非零表示成功,零表示失败 CloseClipCursor
.参数 矩形区域, 整数型, , lpRect,指定一个矩形,用像素屏幕坐标系统表示
.DLL命令 取鼠标所在窗口坐标, 整数型, "user32.dll", "ClientToScreen", , , 非零表示成功,零表示失败 ClientToScreen
.参数 窗口句柄, 整数型, , hwnd,要取出区域坐标的窗口句柄
.参数 位置变量, 坐标_, , lpPoint,参见相关帮助
.DLL命令 判断是否按过某键, 整数型, "user32", "GetAsyncKeyState", , ,按过大于0,否则小于0
.参数 键代码, 整数型, , vKey Long,欲测试的虚拟键的键码
展开全部
用模块的可以不?
更多追问追答
追问
不要模块,要模块的话我就不会问了
追答
不要模块?也不要坐标?
参考资料: http://zhidao.baidu.com/question/437744896.html?oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询