硬汉嵌入式论坛

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

[emWin] 有在窗口中显示gif 的例子么?

[复制链接]

91

主题

87

回帖

360

积分

高级会员

积分
360
发表于 2021-5-20 20:24:47 | 显示全部楼层 |阅读模式
  1. case WM_TIMER:
  2.                 GUI_GIF_DrawSub(_acBuffer,
  3.                                                 uiFileSize,
  4.                                                 (LCD_GetXSize() - InfoGif.xSize)/2,
  5.                                                 (LCD_GetYSize() - InfoGif.ySize)/2,
  6.                                                 i++);
  7.                 WM_RestartTimer(timer, 1000);
  8.                 break;
复制代码

我在窗口定时器里显示gif  ,为什么显示不出来?
回复

使用道具 举报

3

主题

335

回帖

344

积分

高级会员

积分
344
发表于 2021-5-20 22:11:47 | 显示全部楼层
不要以为窗口回调函数里到处都可以绘图(因为回调之前,emWin系统并没有替你准备好环境,只有WM_PAINT消息时才为你准备),应该只在WM_PAINT事件里绘制。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2021-5-21 08:38:20 | 显示全部楼层
在这个消息绘制需要特别操作,使用WM_SelectWindow选择要操作窗口,然后就可以绘制你这个gif了
回复

使用道具 举报

91

主题

87

回帖

360

积分

高级会员

积分
360
 楼主| 发表于 2021-5-21 10:55:11 | 显示全部楼层
eric2013 发表于 2021-5-21 08:38
在这个消息绘制需要特别操作,使用WM_SelectWindow选择要操作窗口,然后就可以绘制你这个gif了
  1.           case WM_INIT_DIALOG:
  2.                 #if 1
  3.                 hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
  4.                 TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
  5.                 TEXT_SetFont(hItem, ptIsrt->pFont);
  6.                 TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(ptIsrt->iTopicColor));
  7.                 TEXT_SetBkColor(hItem, GUI_MAKE_COLOR(ptIsrt->iTopicBkColor));
  8.                 TEXT_SetText(hItem, ptIsrt->cTopic);
  9.                 timer = WM_CreateTimer(pMsg->hWin, 0, 1000, 0);

  10.                 f_open(&fp,"0:/picture/paper_cho.gif", FA_OPEN_EXISTING | FA_READ | FA_OPEN_ALWAYS);
  11.                 uiFileSize = f_size(&fp);
  12.                 printf("uiFileSize = %d\n",uiFileSize);
  13.                 hMem = GUI_ALLOC_AllocZero(uiFileSize);
  14.                 /* 将申请到内存的句柄转换成指针类型 */
  15.                 _acBuffer = GUI_ALLOC_h2p(hMem);
  16.                 printf("%s\n",(NULL == _acBuffer)?"NULL":"not NULL");
  17.                 /* 读取文件到动态内存 */
  18.                 result = f_read(&fp, _acBuffer, uiFileSize, &bw);
  19.                 printf("f_read=%d,bw=%d\n",result,bw);

  20.                 GUI_GIF_GetInfo(_acBuffer, uiFileSize, &InfoGif);
  21.                 #endif               
  22.                 WM_SelectWindow(pMsg->hWin);
  23.                 printf("WM_CreateTimer\n");
  24.                 break;
  25.         case WM_TIMER:
  26.                 WM_RestartTimer(timer, 1000);
  27.                 WM_Invalidate(pMsg->hWin);
  28.                 printf("WM_Invalidate\n");
  29.                 break;
  30.         case WM_PAINT:
  31.                 GUI_GIF_DrawSub(_acBuffer,
  32.                                                 uiFileSize,
  33.                                                 (LCD_GetXSize() - InfoGif.xSize)/2,
  34.                                                 (LCD_GetYSize() - InfoGif.ySize)/2,
  35.                                                 i++);
  36.                 break;
复制代码



这样还是没有显示,帮忙看看 问题在哪里 谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2021-5-22 08:24:07 | 显示全部楼层
【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)
http://www.armbbs.cn/forum.php?m ... id=17330&fromuid=58
(出处: 硬汉嵌入式论坛)








回复

使用道具 举报

4

主题

25

回帖

42

积分

新手上路

积分
42
发表于 2023-9-22 16:27:26 | 显示全部楼层
wen 发表于 2021-5-21 10:55
这样还是没有显示,帮忙看看 问题在哪里 谢谢

怎么解决的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2023-9-23 07:53:05 | 显示全部楼层

你那边遇到了什么问题。
回复

使用道具 举报

4

主题

25

回帖

42

积分

新手上路

积分
42
发表于 2023-9-26 09:47:40 | 显示全部楼层
eric2013 发表于 2023-9-23 07:53
你那边遇到了什么问题。

想显示个太空人gif,后来解决了
回复

使用道具 举报

4

主题

25

回帖

42

积分

新手上路

积分
42
发表于 2023-9-26 09:50:57 | 显示全部楼层
eric2013 发表于 2023-9-23 07:53
你那边遇到了什么问题。
下载 (2).png


太空人gif图片在界面上显示已经实现了。就是按照楼主这样的方法,用定时器不断的给窗口WM_PAINT消息刷新的gif图片的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 11:11 , Processed in 0.287962 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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