概述

使用多个皮肤,就可以让用户通过界面来自由选择皮肤,并且自动记忆当前选中的皮肤。

使用方法

第一步:在工程中添加多个皮肤
第二步:制作页面
第三步:在ini中添加:

这个主要用于设定固化数据的存储

第四步:第一页面增加:
selskin(bind_get("皮肤"));

把这条语句添加到start();语句前面,这样在启动页面的时候就已经切换到存储设定的皮肤;

第五步:添加设置页面,让用户选择皮肤

在页面中添加 skinselectlist 控件

在页面代码中添加:

s1.listtext=getskinval(0,192,0);//获取皮肤字符串

void s1.onselect()
{
    selskin(s1.seltext);    //选择当前选中的皮肤
    bind_set("皮肤",s1.seltext);//将选中的皮肤存储下来
        gopage(11);  //切换当前页面,实际是刷新
}
void s4.onclick()
{    memsave();  //存储固化数据,包括选中的皮肤
    gopage(2);  //返回菜单主界面
}
start();

说明: - 首先,在start()前,执行了s1.listtext赋值成皮肤名称字符串,用于界面显示 - 其次,在s1这个选择框事件中,点击后,选择相应的皮肤,然后修改全局共享数据中的皮肤参数,最后通过gopage来刷新当前页面,完成皮肤的切换; - 最后在“保存”按钮,执行了memsave,存储后返回主菜单;

技巧一:有关页面的配色方案

对于一些特殊的界面,比如含有曲线的界面,在黑背景和白背景的时候,配色方案是不一样的,因此可以使用下面语句完成设置:

void setcolor(){
    //根据皮肤调节个别控件的颜色
    str s;
    s=bind_get("皮肤");
    if ((s=="经典白")|(s=="经典3D白"))
    {   //白背景的配色方案
        lv.cc=3;
        la.cc=3;
        lxy.cc=3;
        c1.c2=3;
    }
    else{
        //黑背景的配色方案
        lv.cc=4;
        la.cc=4;
        lxy.cc=4;
        c1.c2=2;
    }
}
//selskin("经典黑");    //使用这个可以在单页刷新的时候指定当前皮肤
//selskin("经典灰");
//selskin("经典白");
//selskin("经典3D白");
setcolor(); //调用函数调节个别控件的颜色
技巧二:某些页面强行指定皮肤方案
str skin;   
skin=bind_get("皮肤");  //先把当前皮肤名称记录在变量skin中
selskin("经典灰");      //选择经典灰为指定皮肤
void x1.onclick()       //x1为返回按钮
{    selskin(skin);      //在返回前切换成原来皮肤
    gopage(2);          //跳转会菜单
}