硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3571|回复: 5
收起左侧

[emWin] 请教button用spiflash里的dta数据做皮肤问题

[复制链接]

1

主题

2

回帖

27

积分

新手上路

积分
27
发表于 2018-6-22 14:11:42 | 显示全部楼层 |阅读模式
GUI_BITMAP Bitmapbutton;
GUI_LOGPALETTE Palettebutton;
int dispbmpbutton(u8 *BMPFileName,u32 x,u32 y)
{
        u16 bread;
        char *bmpbuffer1;
        CPU_SR_ALLOC();
        f_open(&BMPFile,(const TCHAR*)BMPFileName,FA_READ);        //′ò¿aÎļt
        bmpbuffer1 = mymalloc(SRAMEX,BMPFile.obj.objsize);//éêÇëÄú′æ
        OS_CRITICAL_ENTER();        //áù½çÇø
        f_read(&BMPFile,bmpbuffer1,BMPFile.obj.objsize,(UINT *)&bread); //¶áè¡êy¾Y
        OS_CRITICAL_EXIT();//íË3öáù½çÇø

  GUI_CreateBitmapFromStream565(&Bitmapbutton,&Palettebutton, bmpbuffer1);//spiflashoÃê1
// GUI_DrawBitmap(&Bitmapbutton,x, y);
       
        f_close(&BMPFile);                                //1رÕBMPFileÎļt
        myfree(SRAMEX,bmpbuffer1);                //êí·ÅÄú′æ
        return 0;
}
上面我读取数据部分代码
下面是设置皮肤部分代码
case WM_INIT_DIALOG:
                hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
                BUTTON_SetFont(hItem, &GUI_FontHZ32);
                fname=mymalloc(SRAMEX,64);               
                sprintf((char*)fname,"1:BACKP/BACK01.dta");       
                dispbmpbutton((u8*)fname,0,0);
                myfree(SRAMEX,fname);
                BUTTON_SetBitmapEx(hItem, (unsigned int)dispbmpbutton,&Bitmapbutton,0,0);

我不知道问题出在哪里,就是按键的皮肤一直没有改变,求助论坛大佬

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2018-6-22 14:18:36 | 显示全部楼层
把你的BACK01.dta文件用U2C.exe小软件转换成数组,在工程里面做编译,然后测试是否能成功显示,能成功显示了再测试存储dta文件到spiflash
回复

使用道具 举报

1

主题

2

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2018-6-22 14:31:55 | 显示全部楼层
eric2013 发表于 2018-6-22 14:18
把你的BACK01.dta文件用U2C.exe小软件转换成数组,在工程里面做编译,然后测试是否能成功显示,能成功显示 ...

好的好的,谢谢大哥,那请问我这个方式现在是不是对的
回复

使用道具 举报

1

主题

2

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2018-6-22 14:49:35 | 显示全部楼层
eric2013 发表于 2018-6-22 14:18
把你的BACK01.dta文件用U2C.exe小软件转换成数组,在工程里面做编译,然后测试是否能成功显示,能成功显示 ...

硬汉哥,我看他们都这么叫你的,我现在成功了,参考了下你别的帖子https://tieba.baidu.com/p/4978960605?red_tag=1042968003,现在还有个问题,就是他申请的内存,如果我用的按键多,他的内存是不是越来越多,担心用久了就溢出死机了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2018-6-22 16:08:39 | 显示全部楼层
kbq1950361006 发表于 2018-6-22 14:49
硬汉哥,我看他们都这么叫你的,我现在成功了,参考了下你别的帖子https://tieba.baidu.com/p/49789606 ...

没事的,有一个动态内存剩余返回函数,测试阶段检测下就行。
QQ截图20180622160819.png

回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2020-11-20 16:26:04 | 显示全部楼层
kbq1950361006 发表于 2018-6-22 14:49
**** 作者被禁止或删除 内容自动屏蔽 ****

你解决的方式 是不是 将你的函数中  myfree(SRAMEX,bmpbuffer1); 给屏蔽了,才解决的?
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-19 21:04 , Processed in 0.253732 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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