为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言例程 正文

易语言拉伸拖动任何组件

三叶资源网 2019-09-04 15:56:38 易语言例程 1861 ℃ 4 评论
.版本 2
.支持库 EdirectX
.支持库 spec
.支持库 eAPI

.程序集 窗口程序集1
.程序集变量 改变, 逻辑型
.程序集变量 改变宽, 逻辑型
.程序集变量 改变高, 逻辑型
.程序集变量 改变左, 逻辑型
.程序集变量 改变顶, 逻辑型
.程序集变量 改变位置, 逻辑型
.程序集变量 原鼠标水平位置, 整数型
.程序集变量 原鼠标垂直位置, 整数型
.程序集变量 原宽, 整数型
.程序集变量 原高, 整数型
.程序集变量 原左, 整数型
.程序集变量 原顶, 整数型
.程序集变量 句柄, 整数型
.程序集变量 窗口矩形, RECT
.程序集变量 窗口内坐标, POINT
.程序集变量 组件句柄, 整数型, , "0"
.程序集变量 修改句柄, 整数型

.子程序 初始化

输入设备1.初始化 (0)
输入设备1.选择输入设备 (真, 假, 假)
输入设备1.置刷新时间 (10)

.子程序 设置鼠标
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 宽度, 整数型
.参数 高度, 整数型

.如果 (改变 = 真)

.否则
    SetClassLongA (修改句柄, -12, 65567)
    .如果真 (横向位置 < 3 且 纵向位置 < 3)
        SetClassLongA (修改句柄, -12, 65549)
        .如果 (原宽 > 0)
            改变 = 真
            改变宽 = 真
            改变高 = 真
            改变左 = 真
            改变顶 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (横向位置 > 宽度 - 6 且 纵向位置 < 3)
        SetClassLongA (修改句柄, -12, 65551)
        .如果 (原宽 > 0)
            改变 = 真
            改变宽 = 真
            改变高 = 真
            改变顶 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (横向位置 > 宽度 - 6 且 纵向位置 > 高度 - 6)
        SetClassLongA (修改句柄, -12, 65549)
        .如果 (原宽 > 0)
            改变 = 真
            改变宽 = 真
            改变高 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (横向位置 < 3 且 纵向位置 > 高度 - 6)
        SetClassLongA (修改句柄, -12, 65551)
        .如果 (原宽 > 0)
            改变 = 真
            改变宽 = 真
            改变高 = 真
            改变左 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (横向位置 < 3)
        SetClassLongA (修改句柄, -12, 65553)
        .如果 (原宽 > 0)
            改变 = 真
            改变左 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (纵向位置 < 3)
        SetClassLongA (修改句柄, -12, 65555)
        .如果 (原宽 > 0)
            改变 = 真
            改变顶 = 真
        .否则

        .如果结束
        返回 ()

    .如果真结束
    .如果真 (横向位置 > 宽度 - 6)
        SetClassLongA (修改句柄, -12, 65553)
        .如果 (原宽 > 0)
            改变 = 真
            改变宽 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束
    .如果真 (纵向位置 > 高度 - 6)
        SetClassLongA (修改句柄, -12, 65555)
        .如果 (原宽 > 0)
            改变 = 真
            改变高 = 真
        .否则

        .如果结束
        返回 ()
    .如果真结束


.如果结束


.子程序 改变大小
.局部变量 改变宽度, 整数型
.局部变量 改变高度, 整数型
.局部变量 新左, 整数型
.局部变量 新顶, 整数型
.局部变量 新宽, 整数型
.局部变量 新高, 整数型

.计次循环首 (999999, )
    .如果 (改变 = 假)
        停止改变 ()
        跳出循环 ()
    .否则
        .如果 (改变位置 = 真)
            新左 = 原左 + 取鼠标水平位置 () - 原鼠标水平位置
            新顶 = 原顶 + 取鼠标垂直位置 () - 原鼠标垂直位置
            修改窗口位置和大小 (修改句柄, 新左, 新顶, 原宽, 原高)
        .否则
            .如果 (改变左 = 假 且 改变顶 = 假 且 改变高 = 假)
                改变宽度 = 取鼠标水平位置 () - 原鼠标水平位置
                .如果 (原宽 + 改变宽度 < 20)

                .否则
                    新宽 = 原宽 + 改变宽度
                    修改窗口位置和大小 (修改句柄, 原左, 原顶, 新宽, 原高)
                .如果结束

            .否则
                .如果 (改变左 = 假 且 改变顶 = 假 且 改变宽 = 假)
                    改变高度 = 取鼠标垂直位置 () - 原鼠标垂直位置
                    .如果 (原高 + 改变高度 < 20)

                    .否则
                        新高 = 原高 + 改变高度
                        修改窗口位置和大小 (修改句柄, 原左, 原顶, 原宽, 新高)
                    .如果结束

                .否则
                    .如果 (改变左 = 真 且 改变顶 = 真)
                        改变宽度 = 取鼠标水平位置 () - 原鼠标水平位置
                        改变高度 = 取鼠标垂直位置 () - 原鼠标垂直位置
                        .如果 (原宽 - 改变宽度 < 20)

                        .否则
                            新宽 = 原宽 - 改变宽度
                            新左 = 原左 + 取鼠标水平位置 () - 原鼠标水平位置
                        .如果结束
                        .如果 (原高 - 改变高度 < 20)

                        .否则
                            新高 = 原高 - 改变高度
                            新顶 = 原顶 + 取鼠标垂直位置 () - 原鼠标垂直位置
                        .如果结束
                        修改窗口位置和大小 (修改句柄, 新左, 新顶, 新宽, 新高)
                    .否则
                        .如果 (改变左 = 真)
                            改变宽度 = 取鼠标水平位置 () - 原鼠标水平位置
                            .如果 (原宽 - 改变宽度 < 20)

                            .否则
                                新左 = 原左 + 取鼠标水平位置 () - 原鼠标水平位置
                                新宽 = 原宽 - 改变宽度
                                .如果 (改变高 = 真)
                                    修改窗口位置和大小 (修改句柄, 新左, 原顶, 新宽, 新高)
                                .否则
                                    修改窗口位置和大小 (修改句柄, 新左, 原顶, 新宽, 原高)
                                .如果结束

                            .如果结束
                            .如果 (改变高 = 真)
                                改变高度 = 取鼠标垂直位置 () - 原鼠标垂直位置
                                .如果 (原高 + 改变高度 < 20)

                                .否则
                                    新高 = 原高 + 改变高度
                                    修改窗口位置和大小 (修改句柄, 新左, 原顶, 新宽, 新高)
                                .如果结束

                            .否则

                            .如果结束

                        .否则
                            .如果 (改变顶 = 真)
                                改变高度 = 取鼠标垂直位置 () - 原鼠标垂直位置
                                .如果 (原高 - 改变高度 < 20)

                                .否则
                                    新顶 = 原顶 + 取鼠标垂直位置 () - 原鼠标垂直位置
                                    新高 = 原高 - 改变高度
                                    .如果 (改变宽 = 真)
                                        修改窗口位置和大小 (修改句柄, 原左, 新顶, 新宽, 新高)
                                    .否则
                                        修改窗口位置和大小 (修改句柄, 原左, 新顶, 原宽, 新高)
                                    .如果结束

                                .如果结束
                                .如果 (改变宽 = 真)
                                    改变宽度 = 取鼠标水平位置 () - 原鼠标水平位置
                                    .如果 (原宽 + 改变宽度 < 20)

                                    .否则
                                        新宽 = 原宽 + 改变宽度
                                        修改窗口位置和大小 (修改句柄, 原左, 新顶, 新宽, 新高)
                                    .如果结束

                                .否则

                                .如果结束

                            .否则
                                .如果 (改变宽 = 真 且 改变高 = 真)
                                    改变高度 = 取鼠标垂直位置 () - 原鼠标垂直位置
                                    改变宽度 = 取鼠标水平位置 () - 原鼠标水平位置
                                    .如果 (原高 + 改变高度 < 20)

                                    .否则
                                        新高 = 原高 + 改变高度
                                    .如果结束
                                    .如果 (原宽 + 改变宽度 < 20)

                                    .否则
                                        新宽 = 原宽 + 改变宽度
                                    .如果结束
                                    修改窗口位置和大小 (修改句柄, 原左, 原顶, 新宽, 新高)
                                .否则

                                .如果结束

                            .如果结束

                        .如果结束

                    .如果结束

                .如果结束

            .如果结束

        .如果结束

    .如果结束
    延迟 (10)
.计次循环尾 ()

.子程序 停止改变

改变 = 假
改变宽 = 假
改变高 = 假
改变左 = 假
改变顶 = 假
改变位置 = 假
原宽 = 0
句柄 = 0

.子程序 __启动窗口_创建完毕

初始化 ()
添加可拉伸组件 (图片框1.取窗口句柄 ())
添加可拉伸组件 (图片框2.取窗口句柄 ())

.子程序 添加可拉伸组件
.参数 添加组件句柄, 整数型

加入成员 (组件句柄, 添加组件句柄)

.子程序 _输入设备1_鼠标按键被改变
.参数 键值, 整数型
.参数 键状态, 整数型
.局部变量 n, 整数型

.如果 (改变 = 假)
    句柄 = 取鼠标所在窗口句柄 ()
    .计次循环首 (取数组成员数 (组件句柄), n)
        .如果 (句柄 = 组件句柄 [n])
            修改句柄 = 组件句柄 [n]
            窗口矩形 = 获取矩形 (修改句柄)
            窗口内坐标 = 获取窗口内坐标 (修改句柄)
            .如果 (键值 = 256 且 键状态 = 2)
                原宽 = 窗口矩形.宽度
                原高 = 窗口矩形.高度
                原左 = 窗口矩形.左边
                原顶 = 窗口矩形.顶边
                原鼠标水平位置 = 取鼠标水平位置 ()
                原鼠标垂直位置 = 取鼠标垂直位置 ()
                设置鼠标 (窗口内坐标.x, 窗口内坐标.y, 窗口矩形.宽度, 窗口矩形.高度)
                .如果 (改变 = 假)
                    改变 = 真
                    改变位置 = 真
                    改变左 = 真
                    改变顶 = 真
                .否则

                .如果结束
                改变大小 ()
            .否则

            .如果结束
            .如果 (键值 = 256 且 键状态 = 1)
                停止改变 ()
                设置鼠标 (窗口内坐标.x, 窗口内坐标.y, 窗口矩形.宽度, 窗口矩形.高度)
            .否则

            .如果结束
            .如果 (键值 = 257)
                设置鼠标 (窗口内坐标.x, 窗口内坐标.y, 窗口矩形.宽度, 窗口矩形.高度)
            .否则

            .如果结束
            跳出循环 ()
        .否则

        .如果结束

    .计次循环尾 ()
.否则

.如果结束
.如果 (键值 = 256 且 键状态 = 1)
    停止改变 ()
.否则

.如果结束


.子程序 获取矩形, RECT
.参数 窗口句柄, 整数型
.局部变量 lpRect, RECT
.局部变量 lpPoint, POINT, , "2"
.局部变量 ParentHwnd, 整数型

GetWindowRect (窗口句柄, lpRect)
ParentHwnd = GetParent (窗口句柄)
lpPoint [1].x = lpRect.左边
lpPoint [1].y = lpRect.顶边
lpPoint [2].x = lpRect.宽度
lpPoint [2].y = lpRect.高度
ScreenToClient (ParentHwnd, lpPoint [1])
ScreenToClient (ParentHwnd, lpPoint [2])
lpRect.左边 = lpPoint [1].x
lpRect.顶边 = lpPoint [1].y
lpRect.宽度 = lpPoint [2].x - lpRect.左边
lpRect.高度 = lpPoint [2].y - lpRect.顶边
返回 (lpRect)

.子程序 获取窗口内坐标, POINT
.参数 窗口句柄, 整数型
.局部变量 lpRect, RECT
.局部变量 lpPoint, POINT

GetWindowRect (窗口句柄, lpRect)
lpPoint.x = 取鼠标水平位置 () - lpRect.左边
lpPoint.y = 取鼠标垂直位置 () - lpRect.顶边
返回 (lpPoint)

.子程序 修改窗口位置和大小
.参数 窗口句柄, 整数型, , 欲改变位置和大小的窗口句柄
.参数 左边位置, 整数型, 可空, 窗口新的左边位置,留空不变;
.参数 顶边位置, 整数型, 可空, 窗口新的顶边位置,留空不变;
.参数 新宽度, 整数型, 可空, 窗口的新宽度,留空不变;
.参数 新高度, 整数型, 可空, 窗口的高宽度,留空不变;

MoveWindow (窗口句柄, 左边位置, 顶边位置, 新宽度, 新高度, 真)

.子程序 _输入设备1_鼠标位置改变
.参数 有边界横向位置, 整数型
.参数 有边界纵向位置, 整数型
.参数 无边界横向位置, 整数型
.参数 无边界纵向位置, 整数型
.参数 横向位置偏移, 整数型
.参数 纵向位置偏移, 整数型
.局部变量 n, 整数型

.如果 (改变 = 假)
    句柄 = 取鼠标所在窗口句柄 ()
    .计次循环首 (取数组成员数 (组件句柄), n)
        .如果 (句柄 = 组件句柄 [n])
            修改句柄 = 组件句柄 [n]
            窗口矩形 = 获取矩形 (修改句柄)
            窗口内坐标 = 获取窗口内坐标 (修改句柄)
            设置鼠标 (窗口内坐标.x, 窗口内坐标.y, 窗口矩形.宽度, 窗口矩形.高度)
            跳出循环 ()
        .否则

        .如果结束

    .计次循环尾 ()
.否则

.如果结束

@黑月

易语言拉伸拖动任何组件

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有4位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-09-11 10:28:53]  回复

    易语言+多个组件拖动

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
hp-socketQQ收发消息115网盘扫码登录易写易库安卓协议M3U8视频批量转码SubLime Text教程YY关注B站弹幕助手源码php自学要多久易编辑框源码文本处理高级表格扩展类模块光标取模块DirectX例程自动发布消息界面UI源码按键精灵安卓版tcp协议酷Q智能机器人源码
最新评论