-
-
自定义命令:绘制一个旋转加载条
-
2023-9-16 1023
-
调用示例
////////////////////////////////////////////////////////////////////////////////////////////
'LOGS * conout$
CALL TESTWIN
_SUB TESTWIN,W260H320,加载条演示,
CLCR 130 180 0.09 15 我的加载条 1 9
ITEM button3,l0t0W260h30,删除加载条,DLCR 我的加载条
_END
////////////////////////////////////////////////////////////////////////////////////////////
命令 CLCR
功能 创建一个旋转的加载条
格式 参数表 序号 类型 作用
1 15位以下的小数 加载条轨道的x坐标
2 15位以下的小数 加载条轨道的y坐标
3 15位以下的小数 加载条小圆圈每次旋转的度数,此参数数值越大旋转速度越快,但帧率越低
4 15位以下的小数 加载条小圆圈的半径
5 字符串 加载条名称,可以使用DLCR[加载条名称]删除,不应该与其他控件名相同或近似
6 整数 加载条小圆圈每次旋转间隔的时间(ms),此参数越小旋转速度越快,帧率越高,但运算量越大
7 整数 加载条圆圈的个数,命令将圆圈平均分开
备注 备注表 序号
1 ※此命令必须配合函数0fc60727-c239-4bd4-89ae-3c49f8b88638
2 ※此命令应当于_SUB创建的窗口内使用
3 ※窗口关闭后,应当执行一次DLCR命令
示例 CLCR 130 180 0.09 15 我的加载条 1 9
////////////////////////////////////////////////////////////////////////////////////////////
_SUB CLCR
^CALC cangle=360 / %7
CALC loopc=0
ENVI @this.paint=0fc60727-c239-4bd4-89ae-3c49f8b88638 %1 %2 %3 %4 %7
TIME %5,%6,ENVI @this.invalidaterect=
ENVI-ret dummy=%dummy%
_END
_SUB 0fc60727-c239-4bd4-89ae-3c49f8b88638
loop [%loopc%<%5],
{
^CALC angle=%angle% + (%3)
^CALC x0=%1 + 60 * cos(%angle% * PI / 180 + %loopc% * %cangle% * PI / 180 )
^CALC y0=%2 + 60 * sin(%angle% * PI / 180 + %loopc% * %cangle% * PI / 180 )
^CALC #l=%x0%-%4
^CALC #t=%y0%-%4
^CALC #r=%x0%+%4
^CALC #b=%y0%+%4
CALL $--qd# --ret:* gdi32.dll,Ellipse,dummy, %6,%l%,%t%,%r%,%b%
CALC loopc=%loopc%+1
}
ENVI-ret loopc=0
_END
////////////////////////////////////////////////////////////////////////////////////////////
命令 DLCR
功能 删除一个由CLCR旋转的加载条
格式 DLCR [加载条名称]
参数 加载条名称:由CLCR创建的加载条名称
备注 ※窗口关闭后,应当执行一次DLCR命令
示例 DLCR 我的加载条
////////////////////////////////////////////////////////////////////////////////////////////
_SUB DLCR
ENVI @%1=0
ENVI @this.Paint=0fc60727-c239-4bd4-89ae-3c49f8b88638 -30000 -30000 1 1 1
ENVI @this.InvalidateRect=
_END
////////////////////////////////////////////////////////////////////////////////////////////
图片: