进度条和游标的生成算法: intGUI_BuildProgress(intx,inty,intdx,intdy,U8Style,U32Size,U32Value,structGUI_PROGRESS*Output) { switch(Style) { caseHor: if(Size>=0x800000)//if>8M { Size>>=4; Value>>=4; } ///////// if(Value!=0) { if(ValueSize) { Value=((dx-2)*Value)/Size;//16*2/4((-2)外框占两个像素。) } //// else { Value=dx-2; } } //// Output->X0=x+1; Output->Y0=y+1; Output->Dx0=Value; Output->Dy0=dy-2; Output->X1=x+1+Value; Output->Y1=y+1; Output->Dx1=dx-Value-2; Output->Dy1=dy-2; Output->X=x; Output->Y=y; Output->Dx=dx; Output->Dy=dy; Output->Style=Style; Output->Size=Size; Output->Value=Value; return1; /////////////////////////////////////////////////// caseVer: if(Size>=0x800000)//if>8M { Size>>=4; Value>>=4; } ///////// if(Value!=0) { if(ValueSize) { Value=(dy*Value)/Size;//16*2/4 } //// else { Value=dy; } } //// Output->X0=x+1; Output->Y0=y+dy-Value-2; Output->Dx0=dx-2; Output->Dy0=Value+1; Output->X1=x+1; Output->Y1=y+1; Output->Dx1=dx-2; Output->Dy1=dy-Value-2; Output->X=x; Output->Y=y; Output->Dx=dx; Output->Dy=dy; Output->Style=Style; Output->Size=Size; Output->Value=Value; /* GUI_FillRectangle(x_addr,y_addr+dy-Val,dx,Val,Front_RGB);//显示前景. GUI_FillRectangle(x_addr,y_addr,dx,dy-Val,Back_RGB);//显示背景. GUI_Rectangle(x_addr,y_addr,dx,dy,Pane_RGB);//显示外框. */ return1; /////////////////////////////////////////////////// default:return0; /////////////////////////////////////////////////// } }……