OpenEdv-开源电子网

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

关于多级界面显示的问题

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-5-1
在线时间
62 小时
发表于 2013-8-17 18:42:48 | 显示全部楼层 |阅读模式
       我其实是想弄关于多级界面显示,像MINI板的综合实验开机就会显示主界面,我想做个除了显示主界面,还要有二级界面,三级界面…….,我现在只能理解到MINI板那个主界面是怎么得到的,主界面那9个系统图标我也可以理解怎么得到,问题是,我的二级界面的图标我要怎么才能得到啊,我以为二级界面的9个图标可以像主界面那9个图标那样得到,但是我把程序改了之后,老是说找不到系统图标,难道系统图标在哪里被设置成9个了吗,为什么改了就不行,我已经把二级界面的9个图标放到SD卡了,名字也确定好了,也加入 sysfile 了。我把我改的部分程序贴上来,你们看看有什么问题,谢谢了,我纠结了很多天了,没有办法才求救的。

我的主界面

 二级界面

主界面那个背景图片,我是用文件图标得到,二级界面那个背景图片也是用文件图标得到的,二级界面的9个图标,是用MINI板的主界面得到的,要是我现在想加入三级界面,那么三级界面的9个图标,我就不懂用什么方法得到了。

我主要是改sysfile.cgui.c里面的程序。在sysfile.hgui.h里面的相关定义也改了,图标也放SDSYSTEM文件夹的SYSICO里面了。

fficeffice" /> 

sysfile.c里面改过的地方:红色的是改过的

u32 PICCLUSTER=0;//图片文件夹地址

u32 sys_ico[18];  //系统图标缓存区!不能篡改!

u32 file_ico[4]; //文件图标缓存区 folder;mus;pic;book;

u32 *Pic_Addr=(u32*)iclip;//注意 0:表示预览图片的地址 1~n,表示1~n块图片的地址

//系统文件名定义

const unsigned char *sysfile[]=

{                            

//系统字体图标 0开始

"GBK16.FON",

"GBK12.FON",

"UNI2GBK.SYS",

//系统文件图标      3开始

"FOLDER.BMP",

"MUS.BMP",

"PIC.BMP",

"BOOK.BMP",

//系统主界面图标 7开始

"EBOOK.BMP",

"PICTURE.BMP",

"GAME.BMP",

"TOUCH.BMP",

"TIME.BMP",

"MOUSE.BMP", 

"USB.BMP",

"REMOTE.BMP",

"WIRELESS.BMP",

"LIANGCAI.BMP",

"ERCAI.BMP",

"HAIXIAN.BMP",

"GAODIAN.BMP",

"TIANPING.BMP",

"TANGZHOU.BMP", 

"YINGPING.BMP",

"YINGLIAO.BMP",

"DINGDAN.BMP",           

};

 

 

 

u8 SysInfoGet(u8 sel)

{                                              

         u32 cluster=0;

         u32 syscluster=0;

         u8 t=0;

         u8 size;

         u8 imgx[9];

                  

         FileInfoStruct t_file;                                                                          

         //得到根目录的簇号

         if(FAT32_Enable)cluster=FirstDirClust;

         else cluster=0;                           

           

         t_file=F_Search(cluster,(unsigned char *)folder[0],T_FILE);//查找system文件夹

         if(t_file.F_StartCluster==0)return 2;//系统文件夹丢失

         syscluster=t_file.F_StartCluster;//保存系统文件夹所在簇号       

         if((sel&0x80)==0)//查找系统文件

         {       

                   t=sel&0x7F;//得到编号

                   if(t==0)//系统文件

                   {                                                                                                                                                          

                            t_file=F_Search(syscluster,(unsigned char *)folder[2],T_FILE);//system文件夹下查找SYSICO文件夹

                            if(t_file.F_StartCluster==0)return 3;

                            cluster=t_file.F_StartCluster;//保存SYSICO文件夹簇号

                            for(t=0;t<18;t++)//查找系统图标,九个

                            {

                                     t_file=F_Search(cluster,(unsigned char *)sysfile[t+7],T_BMP);//SYSICO文件夹下查找系统图标

                                     sys_ico[t]=t_file.F_StartCluster;

                                     if(t_file.F_StartCluster==0)return 4;//失败   

                            }

                            for(t=3;t<7;t++)//查找文件图标,4

                            {

                                     t_file=F_Search(cluster,(unsigned char *)sysfile[t],T_BMP);//SYSICO文件夹下查找文件图标

                                     file_ico[t-3]=t_file.F_StartCluster;

                                     if(file_ico[t-3]==0)return 5;//失败             

                            }

                   }else//图片文件夹

                   {

                            t_file=F_Search(cluster,(unsigned char *)folder[3],T_FILE);//查找PICTURE文件夹

                            if(t_file.F_StartCluster==0)return 1;//图片文件夹丢失

                            PICCLUSTER=t_file.F_StartCluster;//图片文件夹所在簇号

                   }

 

gui.c改过的地方;

//系统主菜单

const u8 *Menu[9]=

{

"电子图书",

"数码相框",

"拼图游戏",

"触摸画板",

"系统时间",

"鼠标画板",

"USB连接 ",

"红外遥控",

"无线传书",

"开胃凉菜",

"主食热菜",

"营养海鲜",

"鲜美汤粥",

"时尚饮品",

"美味糕点",

"甜品点心 ",

"饮料酒水",

"我的订单",   

};

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-17 20:37:10 | 显示全部楼层
const u8 *Menu[9]
改为:const u8 *Menu[18]
你想直接在这个函数里添加,就得把所有相关的地方全部改 了。
比如:
u32 sys_ico[9];  //系统图标缓存区!不能篡改!
这个,你改了么?

另外,这种GUI调试,JTAG是必备工具,jtag跟踪调试,方便查找问题。
最后,建议改用fatfs,那个处理起来比较方便。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-5-1
在线时间
62 小时
 楼主| 发表于 2013-8-17 20:56:17 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
嗯  谢谢原子哥啦   我弄出来了 ,呵呵呵
好好加油
回复 支持 反对

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2015-7-18
在线时间
0 小时
发表于 2015-8-2 22:04:49 | 显示全部楼层
回复【3楼】chenyaowu:
---------------------------------
请问主界面那9个图标是怎么来的啊?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 22:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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