自定义命令:绘制一个旋转加载条
2023-9-16 692

调用示例
////////////////////////////////////////////////////////////////////////////////////////////
'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
////////////////////////////////////////////////////////////////////////////////////////////

图片:

录制_2023_09_16_20_37_22_84.gif

最后于 2023-9-16 被3_5105编辑 ,原因:
奖励
收藏
点赞
分享
%random%==35105
最新回复 (0)
返回