OpenEdv-开源电子网

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

战舰V3开发板 STemwin 希望在Framewin中显示PNG图片,失败,显示黑色,死机,求大神指点!!!

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2018-3-5
在线时间
4 小时
发表于 2018-3-5 15:24:10 | 显示全部楼层 |阅读模式
5金钱
战舰V3开发板  STemwin  希望在Framewin中显示PNG图片,失败,显示黑色,死机,求大神指点!!!
http://www.openedv.com/forum.php ... 8&fromuid=99694
(出处: OpenEdv-开源电子网)

1.PNG库添加成功,因为main函数直接显示PNG是可以的,我测试过2.希望在Framewin或者Window中显示,通过回调函数里面的WM_PAINT就是显示不了,显示出黑色。
同样的位置,同样的方法显示BMP图片,就是可以的。

3.一开始PNG其实也有显示一部分的,好像后来被Framewin覆盖了

求大神指点!!!

程序:
//Framewin 调用的对话框
static void _dialog1cbk(WM_MESSAGE * pMsg)
{
        WM_HWIN hWin,hWindow;
        int     NCode;
        char  BUF[20];
        hWin = pMsg->hWin;

        switch (pMsg->MsgId) {
        case WM_TIMER:
                hWin = pMsg->hWin;

                WM_RestartTimer(pMsg->Data.v,100);
  break;
        case WM_PAINT:
                displaypngex("0:/1.png",0,0,0);//显示PNG图片 失败  出现黑色  死机现象
                hWin = pMsg->hWin;
                break;
         case WM_INIT_DIALOG:
               
         break;
         case WM_NOTIFY_PARENT:

                 break;
         break;

        default:
    WM_DefaultProc(pMsg);
    break;
        }
}


//PNG显示(PNG库添加成功了,在不适用控件时可以显示PNG)

static int PngGetData(void * p, const U8 ** ppData, unsigned NumBytesReq, U32 Off)
{
        static int readaddress=0;
        FIL * phFile;
        U8 *pData;
        UINT NumBytesRead;
        #if SYSTEM_SUPPORT_UCOS
                OS_CPU_SR cpu_sr;
        #endif
        
        pData = (U8*)*ppData;
        phFile = (FIL *)p;
        

        if(Off == 1) readaddress = 0;
        else readaddress=Off;
        
        #if SYSTEM_SUPPORT_UCOS
                OS_ENTER_CRITICAL();        
        #endif
        f_lseek(phFile,readaddress);
        
        f_read(phFile,pData,NumBytesReq,&NumBytesRead);
        
               
        #if SYSTEM_SUPPORT_UCOS
                OS_EXIT_CRITICAL();        
        #endif
        return NumBytesRead;
}


int displaypngex(char *PNGFileName,u8 mode,u32 x,u32 y)
{
        char result;
        int XSize,YSize;

        result = f_open(&PNGFile,(const TCHAR*)PNGFileName,FA_READ);        
        if(result != FR_OK)        return 1;

                        GUI_PNG_DrawEx(PngGetData,&PNGFile,x,y);

        f_close(&PNGFile);        
        return 0;
}

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

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2018-3-5
在线时间
4 小时
 楼主| 发表于 2018-3-5 15:26:51 | 显示全部楼层
图片发不上来,EMWIN PC上仿真可以显示的,到了板子上就不行
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-3-6 00:41:44 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 03:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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