OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4744|回复: 1

显示filelistbox的路径程序问题请教(综合试验)

[复制链接]

49

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2013-3-27
在线时间
9 小时
发表于 2013-7-6 16:19:45 | 显示全部楼层 |阅读模式
//显示filelistbox的路径
//filelistbox:filelistbox指针
void filelistbox_show_path(_filelistbox_obj *filelistbox)
{
 u16 plen;
 u8 *path=filelistbox->path;
 u8 offset;   
 const u8 chgchar[2]={0X5C,0X00};//转义符 等效"\"
 if(strlen((const char*)filelistbox->path)>4)offset=1;//文件夹
  else offset=0;//借用一下offset
 gui_draw_icosalpha(filelistbox->left+5,filelistbox->top+(FLBOX_PATH_HEIGHT-16)/2,offset);//偏移5个单位,显示图标
 offset=0;
 plen=strlen((const char*)path);
 if(plen)//需要显示
 {
  if(plen*(FLBOX_PTHINF_FONT/2)>(filelistbox->width-16-7))
  {
   offset=(FLBOX_PTHINF_FONT/2)*3;
   while(plen*(FLBOX_PTHINF_FONT/2)>(filelistbox->width-offset-16-7))
   {
     path=(u8*)strstr((const char*)++path,(const char*)chgchar); //去掉一截
    plen=strlen((const char*)path);     //得到新的长度
   }
    gui_show_ptstr(filelistbox->left+16+7,filelistbox->top+(FLBOX_PATH_HEIGHT-FLBOX_PTHINF_FONT)/2,filelistbox->width+filelistbox->left,GUI_LCD_H,0,filelistbox->lncolor,FLBOX_PTHINF_FONT,"...",1);//显示3点
  }    
  gui_show_ptstr(filelistbox->left+offset+16+7,filelistbox->top+(FLBOX_PATH_HEIGHT-FLBOX_PTHINF_FONT)/2,filelistbox->width+filelistbox->left,GUI_LCD_H,0,filelistbox->lncolor,FLBOX_PTHINF_FONT,path,1);//显示路径
 }


其中,红色部分看不懂,为什么filelistbox->width-16-7(为什么减16再减7),(FLBOX_PTHINF_FONT/2)*3(为什么乘以3)
filelistbox->width-offset-16-7(为什么减16再减7


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-6 16:52:29 | 显示全部楼层
我都不太记得了,这个函数就是用来显示路径的,在文件浏览的时候,在最上面会显示文件夹/文件的当前路径.显示的时候,前面还有个图标,后面还要预留一些空间,总之这里要限制显示不能覆盖图标,又不能超出后面的区域.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 02:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表