嵌入式UI编程,如何画滚动条:DrawScrollBar
在嵌入式系统的UI中,如果条目太多,需要一个类似于Windows风格的滚动条,条目越多,滚动条越小... 这里介绍了一个实用的DrawScrllBar的函数,用C完成
根据项目的多少,决定Bar的大小,项目越多,Bar越小
根据当前选择的项目来决定Bar的位置(高度)
另:Rectangle()由一个画矩形的函数
/*****************************************************
Funtion : DrawScrollBar
Descriptions : Bar Size (count)
Inputs : selected = current selected item index,
count = total count
Outputs : None
******************************************************/
void DrawScrollBar(int selected,int count)
{
int barSize,scrollYP;
if( count < MAX_BAR_SIZE )
{
barSize = (MAX_BAR_SIZE*MIN_BAR_SIZE)/count;
if(barSize < MIN_BAR_SIZE)
{
barSize = MIN_BAR_SIZE;
}
if(selected == (count -1 ))
{
scrollYP = BAR_END_Y - barSize;
}
else
{
scrollYP = BAR_START_Y + ( selected * (MAX_BAR_HEIGHT - barSize)) /count ;
}
}
else
{
barSize = MIN_BAR_SIZE;
scrollYP = BAR_START_Y +( selected * MAX_BAR_SIZE )/count;
}
if ( scrollYP > prevScrollYP)
{
Rectangle(BAR_LEFT_X,prevScrollYP,BAR_RIGHT_X,scrollYP,0,0,0,1); //Clear
}
else
{
Rectangle(BAR_LEFT_X, scrollYP+barSize, BAR_RIGHT_X, BAR_END_Y , 0,0,0,1);
}
Rectangle(BAR_LEFT_X,scrollYP,BAR_RIGHT_X,scrollYP+barSize,0,0,0xdc,1);
prevScrollYP = scrollYP;
}
作者:greg 更新日期:2005-01-18
来源:本站特稿
浏览次数:
相关文章
相关评论 发表评论
- No Comments