aardio - 制作启动等待动画窗口

效果:

aardio - 制作启动等待动画窗口_第1张图片

aardio - 制作启动等待动画窗口_第2张图片

 代码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="启动logo效果演示";right=599;bottom=499;border="none";exmode="toolwindow";mode="popup")
winform.add()
/*}}*/
var i=1
import godking.paint
import gdip; 
import inet.http
var logo = ..gdip.bitmap("https://img-blog.csdnimg.cn/ed6dabdec96b4b8e8c52c236c261507a.png")
drawAlphaText =function(){
	gdi.layeredBuffer( winform.hwnd,  
		function( hdc,hMemDc,hMemBitmap,width,height,left,top,hwnd,blendFunction ){
			if i>1000 {
				winform.clearInterval() 
				winform.close()
				return ;
			}
			var p=godking.paint.fromHdc(hMemDc)
			p.textAntiAlias = true;
			p.drawImageF(150,0/*y*/,/*宽*/300,300/*高*/,logo/*图片*/,/*透明度或图片属性*/,true/*保持比例*/)
   		
    		var rc = ::RECT(0,300,600,400);
    		rc.inflate(-5,-5)
    		p.fillRoundRect(rc,50,0x33FFFFFF);
    		var pa = ..gdip.path(1/*_FillModeWinding*/);
    		pa.addRoundRect(rc,50);
    		p.setClipPath(pa/*path*/,0/*_GdipCombineModeReplace区域相交模式*/)
    		pa.delete()
    		var bolang = {{-400,400},{-400,350},{-300,380},{-200,350},{-100,380},{0,350},{100,380},{200,350},{300,380},{400,350},{500,380},{600,350},{600,400}}
    		
    		p.translate(i*10%200 /*水平偏移像素*/,/*垂直偏移像素*/,/*选项*/)
    		p.fillCurve(bolang,0x55FF8888)
    		p.resetTransform()
    		
    		p.translate(i*8%200 /*水平偏移像素*/,/*垂直偏移像素*/,/*选项*/)
    		p.fillCurve(bolang,0x88FF5555)
    		p.resetTransform()
 
    		p.translate(i*4%200 /*水平偏移像素*/,/*垂直偏移像素*/,/*选项*/)
    		p.fillCurve(bolang,0xFFFF0000)
    		p.resetTransform()
    		
    		p.setClip()
    		
    		p.translate(2 /*水平偏移像素*/,2/*垂直偏移像素*/,/*选项*/)
    		p.drawRoundRect(rc,50/*圆角半径*/,0x55888888,3)
    		p.resetTransform()
    		
    		p.drawRoundRect(rc,50/*圆角半径*/,0xFFFFFFFF,3)
 
			pa = ..gdip.path(1/*_FillModeWinding*/);
			var fmt = gdip.stringformat();
			fmt.align = 1/*_StringAlignmentCenter*/ ;
			fmt.lineAlign = 1/*_StringAlignmentCenter*/ ;
			pa.addstring("正在启动中,请稍等 "++string.format("%.1f",math.round(i/10,2))++" %",gdip.family("黑体"),1/*_FontStyleBold*/,18,::RECTF(0,300,600,50),fmt)
			p.drawPath(pa,0xFFBBBBBB/*线条颜色或pen对象*/,2/*线宽*/)
			p.fillPath(pa,0xFF880000/*填充颜色或brush对象*/)
			fmt.delete()
			pa.delete()
 
			..gdi.updateLayeredWindow( hwnd,hMemDc,::SIZE(width,height) ,blendFunction  ); 
    		i++;
    		p.close();
		}
	)
}
 
winform.transparent(true); 
drawAlphaText()
winform.setInterval(drawAlphaText,50)
win.setTopmost(winform.hwnd);
win.loopMessage();

你可能感兴趣的:(aardio,aardio)