硬汉嵌入式论坛

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

[emWin] 在模拟器中,GIF在背景上有显示,在窗口上不显示,错在哪里?

[复制链接]

3

主题

5

回帖

3

积分

新手上路

积分
3
发表于 2017-6-21 09:17:07 | 显示全部楼层 |阅读模式
MainTask函数中:
    while(1){

        GUI_GIF_GetInfo(_acfengji_donghua,3633,&infoGif);
        if(cng_GIF<infoGif.NumImages-1)
          cng_GIF++;
        else
          cng_GIF=0;
        GUI_GIF_GetImageInfo(_acfengji_donghua,3633,&infoGifImage,cng_GIF);
        GUI_GIF_DrawSub(_acfengji_donghua,3633,300,50,cng_GIF);   

        GUI_Delay(200);
    }
上面的方法可以在背景中看到GIF动画。

下面的方法不能在MultiPage中看到GIF动画。
MainTask函数中改成下面,建立了个Window窗口,在窗口中加入了一个MultiPage控件,其中第一个页面指针为hMpMain:

    CreateWdBK();
    while(1){
        WM_SendMessageNoPara(hMpMain,MSG_REFRESH_GIF);//向hMpMain控件发送GIF更新消息

        GUI_Delay(200);
    }
在hMpMainDLG.C中的  switch (pMsg->MsgId)下加入下面程序:

  case MSG_REFRESH_GIF:
      WM_SetFocus(hMpMain);
      GUI_GIF_GetInfo(_acfengji_donghua,3633,&infoGif);
      if(cng_GIF<infoGif.NumImages-1)
          cng_GIF++;
      else
          cng_GIF=0;
      GUI_GIF_GetImageInfo(_acfengji_donghua,3633,&infoGifImage,cng_GIF);
      GUI_GIF_DrawSub(_acfengji_donghua,3633,300,50,cng_GIF);
      break;

//中断时能看到消息接收正确,也执行了所有语句,就是看不到动画。
哪位大师能指导一下,我是新手!!
回复

使用道具 举报

3

主题

5

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2017-6-21 09:29:54 | 显示全部楼层
另外,在两种方式下面,执行完下面语句后,infoGifImage中的yPos值,正常显示的值为0,不正常显示的值为-858993460

GUI_GIF_GetImageInfo(_acfengji_donghua,3633,&infoGifImage,cng_GIF);

将infoGifImage设为全局变量后,执行完后yPos的值为0了,但还不能正常显示。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115749
QQ
发表于 2017-6-21 10:43:52 | 显示全部楼层
GIF图片绘制属于2D函数绘制,你得在WM_PAINT消息里面搞。

或者学习下我们新版emWin教程的:第65章 STemWin 窗口中任意绘制 2D 图形,也有办法的。
回复

使用道具 举报

3

主题

5

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2017-6-21 12:06:49 | 显示全部楼层

回 eric2013 的帖子

eric2013:GIF图片绘制属于2D函数绘制,你得在WM_PAINT消息里面搞。

或者学习下我们新版emWin教程的:第65章 STemWin 窗口中任意绘制 2D 图形,也有办法的。 (2017-06-21 10:43) 
多谢,问题解决了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 22:08 , Processed in 0.216936 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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