开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 11600|回复: 10
收起左侧

[易语言模块源码] 窗口_按要求排列 望官方收录

[复制链接]
结帖率:93% (43/46)
发表于 2020-9-8 08:05:51 | 显示全部楼层 |阅读模式   福建省泉州市
分享例程
界面截图:
备注说明: -
  
子程序名返回值类型公开备 注
窗口_按要求排列 
参数名类 型参考可空数组备 注
窗口数组整数型
窗口_宽度整数型
窗口_高度整数型
窗口_间隙整数型
参数_排序方式整数型0:左到右 上到下  1:右往左上往下
变量名类 型静态数组备 注
i整数型 
x值整数型 
y值整数型 
如果真 (参数_排序方式 = 0)
计次循环首 (取数组成员数 (窗口数组), i)
如果 (x值 + 窗口_宽度 + 窗口_间隙 < 取屏幕宽度 ())
窗口_置位置和大小 (窗口数组 [i], x值, y值, 窗口_宽度, 窗口_高度)
x值 = x值 + 窗口_宽度 + 窗口_间隙
x值 = 0
y值 = 窗口_高度 + y值 + 窗口_间隙

计次循环尾 ()
如果真 (参数_排序方式 = 1)
x值 = 取屏幕宽度 () - 窗口_宽度 - 窗口_间隙
计次循环首 (取数组成员数 (窗口数组), i)
如果 (x值 < 0)
x值 = 取屏幕宽度 () - 窗口_宽度 - 窗口_间隙
y值 = 窗口_高度 + y值 + 窗口_间隙


窗口_置位置和大小 (窗口数组 [i], x值, y值, 窗口_宽度, 窗口_高度)
x值 = x值 - 窗口_宽度 - 窗口_间隙
计次循环尾 ()

评分

参与人数 3好评 +2 精币 +4 收起 理由
xiadao + 1 感谢发布原创作品,精易因你更精彩!
李泽勇2 + 1 + 2 感谢分享,很给力!~
粉风 + 2 很赞同,谢谢!

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。
发表于 2023-11-20 09:50:32 | 显示全部楼层   浙江省台州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:91% (10/11)

签到天数: 7 天

发表于 2023-6-26 22:31:40 | 显示全部楼层   广东省广州市
感谢发布原创作品,精易因你更精彩!
回复 支持 反对

使用道具 举报

发表于 2023-4-24 14:11:15 | 显示全部楼层   江苏省苏州市
感谢发布原创作品,精易因你更精彩!
回复 支持 反对

使用道具 举报

发表于 2023-2-27 20:06:49 | 显示全部楼层   湖南省岳阳市
学习学习
回复 支持 反对

使用道具 举报

发表于 2021-3-14 22:54:32 高大上手机用户 | 显示全部楼层   上海市上海市
谢谢分享!么么么么哒
回复 支持 反对

使用道具 举报

结帖率:30% (6/20)

签到天数: 9 天

发表于 2021-1-9 20:27:16 | 显示全部楼层   江西省九江市
默念、 发表于 2021-1-9 11:46
你好 你这个有完整的吗

这个就是完整的
回复 支持 反对

使用道具 举报

结帖率:96% (111/116)

签到天数: 3 天

发表于 2021-1-9 11:46:31 | 显示全部楼层   河北省秦皇岛市
shituo 发表于 2021-1-2 03:07
.版本 2

.子程序 窗口_自动排列, , 公开, 自动将多个窗口,整齐的排列好。

你好 你这个有完整的吗
回复 支持 反对

使用道具 举报

结帖率:30% (6/20)

签到天数: 9 天

发表于 2021-1-2 03:07:58 | 显示全部楼层   江西省九江市
.版本 2

.子程序 窗口_自动排列, , 公开, 自动将多个窗口,整齐的排列好。
.参数 窗口句柄, 整数型, 数组, 需要自动排列的窗口句柄数组
.参数 横间距, 整数型, 可空, 窗口之间的横向间距
.参数 纵间距, 整数型, 可空, 窗口之间的纵向间距
.参数 每行数量, 整数型, 可空, 每行几个窗口。留空则根据屏幕尺寸自动计算
.参数 对齐方式, 整数型, 可空, 0.左上角;1.右上角;2.左下角;3.右下角;4.局中
.参数 是否按标题排列, 整数型, 可空, 可空 默认:0 =不按标题排序 1=从小到大 其他非零=从大到小
.参数 新宽度, 整数型, 可空, 为0或省略时,不修改宽度
.参数 新高度, 整数型, 可空, 为0或省略时,不修改高度
.局部变量 总数, 整数型
.局部变量 行数, 整数型
.局部变量 窗口矩形, 矩形_
.局部变量 窗口宽度, 整数型
.局部变量 窗口高度, 整数型
.局部变量 临时矩形, 矩形_
.局部变量 屏幕宽度, 整数型
.局部变量 屏幕高度, 整数型
.局部变量 任务栏位置, 整数型
.局部变量 任务栏高度, 整数型
.局部变量 索引, 整数型
.局部变量 次数1, 整数型
.局部变量 次数2, 整数型
.局部变量 余数, 整数型
.局部变量 标题数组, 文本型, , "0"

总数 = 取数组成员数 (窗口句柄)
.如果真 (总数 = 0)
    输出调试文本 (“窗口数量不能为0 ”)
    返回 ()
.如果真结束
.如果真 (是否按标题排列 > 0)
    重定义数组 (标题数组, 假, 总数)
    .计次循环首 (总数, 次数1)
        标题数组 [次数1] = 取窗口标题_ (窗口句柄 [次数1]) + “|+|” + 到文本 (窗口句柄 [次数1])
        ' _窗口激活_SwitchToThisWindow (句柄数组 [n], 真)
    .计次循环尾 ()
    数组_排序S_ASM (标题数组, 选择 (是否按标题排列 = 1, 真, 假))
    .计次循环首 (总数, 次数1)
        窗口句柄 [次数1] = 到整数 (取文本右边_ (标题数组 [次数1], “|+|”))
    .计次循环尾 ()
.如果真结束
.' 如果真 (_窗口是否最小化_IsIconic (窗口句柄 [1]))
    ' _窗口激活_SwitchToThisWindow (窗口句柄 [1], 真)
.如果真结束
_窗口取外矩形_GetWindowRect (窗口句柄 [1], 窗口矩形)
窗口宽度 = 窗口矩形.宽度 - 窗口矩形.左边
窗口高度 = 窗口矩形.高度 - 窗口矩形.顶边
' 输出调试文本 (窗口宽度, 窗口高度)
.如果真 (新宽度 > 0)
    窗口宽度 = 新宽度
.如果真结束
.如果真 (新高度 > 0)
    窗口高度 = 新高度
.如果真结束

.如果真 (对齐方式 = 4 且 每行数量 = 0)
    每行数量 = 绝对取整 (求平方根 (总数))
.如果真结束

.如果真 (每行数量 ≤ 0)
    .如果 (窗口宽度 ≥ 取屏幕宽度 ())
        每行数量 = 1
    .否则
        每行数量 = 绝对取整 (取屏幕宽度 () ÷ 窗口宽度)
    .如果结束

.如果真结束

屏幕宽度 = 取屏幕宽度 ()
屏幕高度 = 取屏幕高度 () - 40

行数 = 总数 ÷ 每行数量
余数 = 总数 % 每行数量
.如果真 (余数 > 0)
    行数 = 行数 + 1
.如果真结束

' 计算总矩形.宽度高
临时矩形.宽度 = 窗口宽度 + (窗口宽度 + 横间距) × (每行数量 - 1)
.如果真 (临时矩形.宽度 > 屏幕宽度)
    输出调试文本 (“自动排列宽度超出屏幕。”)
.如果真结束
临时矩形.高度 = 窗口高度 + (窗口高度 + 纵间距) × (行数 - 1)
.如果真 (临时矩形.高度 > 屏幕高度)
    输出调试文本 (“自动排列高度超出屏幕。”)
.如果真结束

' 计算并排列窗口位置
索引 = 1
.计次循环首 (行数, 次数1)
    .如果真 (余数 > 0 且 次数1 = 行数)
        每行数量 = 余数
    .如果真结束
    .如果真 (对齐方式 = 0)  ' 左上角
        临时矩形.左边 = 0
        临时矩形.顶边 = (次数1 - 1) × (窗口高度 + 纵间距)
    .如果真结束
    .如果真 (对齐方式 = 1)  ' 右上角
        临时矩形.左边 = 屏幕宽度 - 窗口宽度
        临时矩形.顶边 = (次数1 - 1) × (窗口高度 + 纵间距)
    .如果真结束
    .如果真 (对齐方式 = 2)  ' 左下角
        临时矩形.顶边 = 屏幕高度 - 窗口高度 - (次数1 - 1) × (窗口高度 + 纵间距)
        临时矩形.左边 = 0
    .如果真结束
    .如果真 (对齐方式 = 3)  ' 右下角
        临时矩形.顶边 = 屏幕高度 - 窗口高度 - (次数1 - 1) × (窗口高度 + 纵间距)
        临时矩形.左边 = 屏幕宽度 - 窗口宽度
    .如果真结束
    .如果真 (对齐方式 = 4)  ' 居中
        临时矩形.左边 = 屏幕宽度 ÷ 2 - (窗口宽度 + (窗口宽度 + 横间距) × (每行数量 - 1)) ÷ 2
        临时矩形.顶边 = (屏幕高度 - 临时矩形.高度) ÷ 2 + (次数1 - 1) × (窗口高度 + 纵间距)
    .如果真结束

    ' 保持窗口在屏幕内
    .如果真 (临时矩形.左边 < 0)
        临时矩形.左边 = 0
    .如果真结束
    .如果真 (临时矩形.顶边 < 0)
        临时矩形.顶边 = 0
    .如果真结束

    .如果真 (临时矩形.左边 + 窗口宽度 > 屏幕宽度)
        临时矩形.左边 = 屏幕宽度 - 窗口宽度
    .如果真结束
    .如果真 (临时矩形.顶边 + 窗口高度 > 屏幕高度)
        临时矩形.顶边 = 屏幕高度 - 窗口高度
    .如果真结束


    .计次循环首 (每行数量, 次数2)
        ' 如果真 (_窗口是否最小化_IsIconic (窗口句柄 [索引]))
        _窗口移动_MoveWindow (窗口句柄 [索引], 临时矩形.左边, 临时矩形.顶边, 窗口宽度, 窗口高度, 真)
        _窗口激活_SwitchToThisWindow (窗口句柄 [索引], 真)
        索引 = 索引 + 1
        .如果真 (对齐方式 = 0)  ' 左上角
            临时矩形.左边 = 临时矩形.左边 + 窗口宽度 + 横间距
        .如果真结束
        .如果真 (对齐方式 = 1)  ' 右上角
            临时矩形.左边 = 临时矩形.左边 - (窗口宽度 + 横间距)
        .如果真结束
        .如果真 (对齐方式 = 2)  ' 左下角
            临时矩形.左边 = 临时矩形.左边 + 窗口宽度 + 横间距
        .如果真结束
        .如果真 (对齐方式 = 3)  ' 右下角
            临时矩形.左边 = 临时矩形.左边 - (窗口宽度 + 横间距)
        .如果真结束
        .如果真 (对齐方式 = 4)  ' 居中
            临时矩形.左边 = 临时矩形.左边 + 窗口宽度 + 横间距
        .如果真结束
        _处理事件 ()
    .计次循环尾 ()
    临时矩形.顶边 = 临时矩形.顶边 + 纵间距
    _处理事件 ()
.计次循环尾 ()

回复 支持 反对

使用道具 举报

发表于 2020-10-10 16:01:13 | 显示全部楼层   湖南省长沙市
不错 不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表