硬汉嵌入式论坛

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

[emWin] STemwin5.36中SWIPELIST_Demo例程的一个疑问

[复制链接]

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2016-12-5 10:50:18 | 显示全部楼层 |阅读模式
STemwin5.36中SWIPELIST_Demo例程里有这么一个函数

/*********************************************************************
*
*       _AnimMoveWindows
*/
static void _AnimMoveWindows(GUI_ANIM_INFO * pInfo, void * pVoid) {
  int xPos;
  int yPos;
  int xSize;
  int ySize;
  ANIM_DATA * pData;
  
  pData = (ANIM_DATA *) pVoid;
  //
  // Calculate a new x position and set the window properly
  //
  if (pData->Dir) {
    xPos = (LCD_GetXSize() / 2) + (((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE);
  } else {
    xPos = (LCD_GetXSize() - ((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE);
  }
  yPos = WM_GetWindowOrgY(pData->hWin);
  xSize = WM_GetWindowSizeX(pData->hWin);
  ySize = WM_GetWindowSizeY(pData->hWin);
  WM_SetWindowPos(pData->hWin, xPos, yPos, xSize, ySize);
}
这个函数的作用好像是确定窗口的位置。这里面有几行代码:


if (pData->Dir) {    xPos = (LCD_GetXSize() / 2) + (((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE);
  } else {    xPos = (LCD_GetXSize() - ((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE);
  }应该是根据pData->Dir来确定xPos的值。
可是:xPos = (LCD_GetXSize() / 2) + (((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE);这句实在弄不明白。为什么 (LCD_GetXSize() / 2) + (((LCD_GetXSize() / 2) * pInfo-&gtos) / GUI_ANIM_RANGE)可以计算xPos,请高手指点一下?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-12-5 16:37:44 | 显示全部楼层
还没有研究过这个Demo,帮顶。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 06:58 , Processed in 0.035882 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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