看效果:
对例程进行了改造:
上代码:
请下载最新版paint库,以便能够顺利运行以下代码:
//圆环进度条
import win.ui;
/*DSG{{*/
var winform = win.form(text="圆形进度条";right=258;bottom=258)
winform.add(
plus={cls="plus";left=3;top=4;right=256;bottom=257;bgcolor=32896;clipBk=false;notify=1;repeat="center";z=1}
)
/*}}*/
winform.plus.setPieRange(1,360)
winform.plus.progressPos = 1;
winform.setInterval(
function(){
winform.plus.progressPos = winform.plus.progressPos+1
},10
)
//在输出图像以后,抠出圆环效果
winform.plus.onDrawForegroundEnd = function(graphics,rc){
import godking.paint
var p = godking.paint.fromGraphics(graphics,rc.right,rc.bottom)
p.textAntiAlias=true
//画出进度条
p.rotateRect(rc,-45/*旋转角度*/)
p.fillPie(rc,0x55FFFFFF,0/*开始角*/,winform.plus.progressPos/*结束角*/)
p.drawEllipse(rc,0xFFFFFFFF,1)//画个圆圈去掉锯齿
//画出进度文字
p.rotateRect(rc,winform.plus.progressPos+5/*旋转角度*/)
p.drawTextF(200,120,0/*宽度*/,0/*高度*/,..tostring(winform.plus.progressPos),
::LOGFONT(name="Arial";point=12;color=0xFFFFFFFF),{0},1)
//画出中间头像
p.resetTransform()
p.rotateRect(rc,winform.plus.progressPos/*旋转角度*/)
rc.inflate(-(rc.width()/5),-(rc.height()/5))
p.setClip(rc,-1/*圆角半径*/,0/*_GdipCombineModeReplace*/)
p.drawImage(rc,"/tou.png"/*图片*/)
p.setClip()
p.drawEllipse(rc,0xFFFFFFFF,1)//画个圆圈去掉锯齿
}
winform.show()
win.loopMessage();