易语言无限打开窗口 自绘皮肤源码
.版本 2
.支持库 spec
.程序集 程序集_启动子程序
.程序集变量 主窗口, 分层_窗口
.程序集变量 窗口1, 分层_窗口, , "0", ' 本源码来自三叶资源网(www.sanye.cx)
.程序集变量 按钮_添加窗口, 分层_按钮
.程序集变量 集_窗口状态, 分层_窗口状态, , "0"
.子程序 _启动子程序, 整数型
主窗口.创建 (0, , , 400, 280, 真, “添加子窗口例子”, , , #青蓝, 253, 真, 真, , , 真, , 到整数 (&_主窗口_创建完毕), , 假, , , , , , , 真, 真, #窗口_关闭钮, #控制钮风格_QQ, , )
主窗口.事件_可否关闭 (到整数 (&_主窗口_可否关闭))
窗口_消息循环 () ' 凭空创建窗口必须加入 窗口_消息循环() 不然直接结束
返回 (1)
.子程序 _主窗口_可否关闭, 整数型
.参数 窗口句柄, 整数型
PostQuitMessage (0) ' 关闭主窗口前,结束 窗口_消息循环()
返回 (1)
.子程序 _主窗口_创建完毕
.参数 窗口句柄, 整数型
按钮_添加窗口.创建普通钮 (窗口句柄, , 120, 200, 60, 25, “添加窗口”, #青蓝, , , #蓝色)
按钮_添加窗口.事件_鼠标单击 (到整数 (&_按钮_添加窗口_鼠标单击))
.子程序 _按钮_添加窗口_鼠标单击
.参数 组件索引, 整数型
.局部变量 成员数, 整数型
.局部变量 n, 整数型
成员数 = 取数组成员数 (窗口1)
' 判断一下窗口数量是否为0或数量和当前创建的数量一直,如果一致则重定义,将窗口数量+1
.判断开始 (成员数 = 0 或 成员数 = 集_窗口状态 [1].已创建数量)
重定义数组 (窗口1, 真, 成员数 + 1)
重定义数组 (集_窗口状态, 真, 成员数 + 1)
成员数 = 取数组成员数 (窗口1)
.默认
' 假设已经创建了5个窗口,但是其中有一个窗口被关闭了,这时候不需要添加窗口上限数量,取出是第几个窗口被关闭了,再创建出来,利用资源
.计次循环首 (成员数, n)
.如果真 (集_窗口状态 [n].窗口是否已创建 = 假)
成员数 = n
跳出循环 ()
.如果真结束
' 本源码来自三叶资源网(www.sanye.cx)
.计次循环尾 ()
.判断结束
窗口1 [成员数].创建 (0, , , 400, 280, 真, “添加窗口” + 到文本 (成员数), , , #青蓝, 253, 真, 真, , , 真, , , , 假, , , , , , , 真, 真, #窗口_关闭钮, #控制钮风格_QQ, , )
窗口1 [成员数].事件_可否关闭 (到整数 (&_窗口1_可否被关闭))
集_窗口状态 [成员数].窗口是否已创建 = 真 ' 每次窗口创建成功后,都在相应窗口上标记已创建
集_窗口状态 [成员数].窗口句柄 = 窗口1 [成员数].取句柄 () ' 在相应窗口上标记该窗口的句柄
集_窗口状态 [1].已创建数量 = 集_窗口状态 [1].已创建数量 + 1 ' 记录总创建的窗口数量,放在第一个成员身上
.如果真 (成员数 = 1) ' 判断第一个窗口是否被创建了
调试输出 (“第一个窗口已创建”)
集_窗口状态 [1].第一个窗口是否被关闭 = 假
.如果真结束
' 本源码来自三叶资源网(www.sanye.cx)
调试输出 (“当前创建的是” + 到文本 (成员数), “实际已窗口数量” + 到文本 (取数组成员数 (窗口1)), “第一个窗口是否被关闭” = 到文本 (集_窗口状态 [1].第一个窗口是否被关闭))
.子程序 _窗口1_可否被关闭, 整数型
.参数 窗口句柄, 整数型
.局部变量 成员数, 整数型, , , ' 本源码来自三叶资源网(www.sanye.cx)
.局部变量 n, 整数型
' 取出有当前实际创建了多少个窗口
成员数 = 取数组成员数 (窗口1)
.计次循环首 (成员数, n)
' 循环判断窗口句柄,得知是那个窗口被关闭了
.如果真 (集_窗口状态 [n].窗口句柄 = 窗口句柄)
' 将被关闭的窗口标记为 假 并将已创建的窗口数量-1
集_窗口状态 [n].窗口是否已创建 = 假
集_窗口状态 [1].已创建数量 = 集_窗口状态 [1].已创建数量 - 1
' 如果有多个窗口的时候,第一个窗口是第一个被关闭的,当所有窗口都关闭的时候程序会崩溃,做个判断,有多个窗口的时候,是不是第一个窗口首先被关闭的
.如果真 (n = 1 且 集_窗口状态 [1].已创建数量 ≥ 1)
调试输出 (“有多个窗口的时候第一个窗口被关闭了”)
集_窗口状态 [1].第一个窗口是否被关闭 = 真
.如果真结束
跳出循环 ()
.如果真结束
.计次循环尾 ()
' 本源码来自三叶资源网(www.sanye.cx)
' 当所有窗口都被关闭的时候进行判断
.如果真 (集_窗口状态 [1].已创建数量 = 0)
' 判断第一个窗口是否最先被关闭,上面已经进行判断,并标记了
.判断开始 (集_窗口状态 [1].第一个窗口是否被关闭 = 真)
调试输出 (“当前窗口数量为0,但是由于第一个窗口首先被关闭了,不做重定义窗口数组,否则出错”)
.默认
调试输出 (“由于第一个窗口是最后一个关闭的,可以将窗口重定义,释放资源,但是最少保留一个窗口,不然出错”)
重定义数组 (窗口1, 真, 1)
重定义数组 (集_窗口状态, 真, 1)
.判断结束
.如果真结束
调试输出 (“剩余窗口数量” + 到文本 (集_窗口状态 [1].已创建数量), “实际已创建数量” + 到文本 (取数组成员数 (窗口1)), “第一个窗口是否被关闭=” + 到文本 (集_窗口状态 [1].第一个窗口是否被关闭))
返回 (1)
易语言自绘组件取标记
易语言创建窗口图标源码
易语言窗口无限
易语言无限创窗口
怎么创建无限窗口
易语言屏蔽起始页自动创建窗口
易语言新建窗口
Start无线循环窗口
易语言代码创建窗口
易语言 创建窗口
易语言+无限窗口