OpenEdv-开源电子网

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

emwin 表盘

[复制链接]

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-3-18
在线时间
0 小时
发表于 2015-4-16 22:10:49 | 显示全部楼层 |阅读模式
5金钱
建立一个对话框 想在其中加入一个旋转的指针  可是写好函数后直接引用出不来   回调函数那里怎么处理啊  能实现这个功能吗

不知道有没有人做过这个   请大家帮忙看看   谢谢了


#define ID_WINDOW_0    (GUI_ID_USER + 0x01)

#define countof(Obj) (sizeof(Obj) / sizeof(Obj[0]))
#define DEG2RAD      (3.1415926f / 180)
#define MAG         4

static  const GUI_POINT _aNeedle_0[] = {
  { MAG * ( 0), MAG * (  0 )},
  { MAG * (-3), MAG * (10 )},
  { MAG * (-3), MAG * (60)},
  { MAG * ( 3), MAG * (60 )},
  { MAG * ( 3), MAG * (10 )},
};

typedef struct {
  GUI_AUTODEV_INFO AutoDevInfo;
  GUI_POINT aPoints[7];        
float Angle;
} PARAM;


void _Draw_0(void * p) {
  PARAM * pParam = (PARAM *)p;  

  GUI_SetColor(GUI_RED);  

  GUI_AA_FillPolygon(pParam->aPoints, countof(_aNeedle_0), MAG * 150,  MAG * 180);

}

void GUIDEMO_A(void) {
int t0=27000 ;

  PARAM Param;            
  GUI_AUTODEV AutoDev;    
  GUI_MEMDEV_Handle hMem;
 
  GUI_AA_EnableHiRes();    
  GUI_AA_SetFactor(MAG);  


  GUI_MEMDEV_CreateAuto(&AutoDev);
 
while (1) 
{

t0-= 100;
if(t0 < 17000)
{
t0 = 27000;
}

Param.Angle= t0; 
Param.Angle *= 3.1415926f / 18000;  
GUI_RotatePolygon(Param.aPoints, _aNeedle_0, countof(_aNeedle_0), Param.Angle);
GUI_MEMDEV_DrawAuto(&AutoDev, &aram.AutoDevInfo, _Draw_0, &aram);

  
}

}

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {

  { WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 480, 0, 0x64, 0 },

};



static void _cbDialog(WM_MESSAGE * pMsg) {


  switch (pMsg->MsgId) {

case WM_PAINT:


 break;
 
case WM_NOTIFY_PARENT:
GUIDEMO_A();

break;
  default:
    WM_DefaultProc(pMsg);

  }
}




void MainTask(void) 
{
/* 初始化并创建对话框 */
GUI_Init();

WM_SetCreateFlags(WM_CF_MEMDEV);

  hWinMain= GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);

while(1)
{
GUI_Delay(20);
}
}




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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-4-16 23:31:26 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-3-18
在线时间
0 小时
 楼主| 发表于 2015-4-17 10:36:38 | 显示全部楼层
有没有人做过类似的指点一下啊
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-4-17 12:41:03 | 显示全部楼层
emwin例程里就有表盘  参照那个吧
学无止境
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-3-18
在线时间
0 小时
 楼主| 发表于 2015-4-17 14:08:21 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
那个只是单纯的一个表盘  已经可以实现  但是在窗口或者对话框中就不知道怎么实现了    回调函数那里不会写
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-3-18
在线时间
0 小时
 楼主| 发表于 2015-4-17 21:28:02 | 显示全部楼层
自己发的帖  跪着也要顶起来
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-6-30
在线时间
7 小时
发表于 2015-4-20 11:42:42 | 显示全部楼层
_Draw_0()前景和背景没有去处理
我想安安静静做个美男子
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-3-18
在线时间
0 小时
 楼主| 发表于 2015-4-21 22:08:50 | 显示全部楼层
回复【7楼】Qlin:
---------------------------------
前景背景这个倒是后面好加入,现在的问题是怎样实现指针旋转 ,其他的之后加上去就行
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-6-30
在线时间
7 小时
发表于 2015-4-22 18:01:17 | 显示全部楼层
回复【8楼】ucgui:
---------------------------------
你要先加上前景和背景啊,在任务先算好指针的旋转的角度,然后在_Draw_0()中绘制指针,如果你前景和背景有的话,没有加入,什么后果,你自己看看咯,emwin例程里就有表盘  参照那个吧
我想安安静静做个美男子
回复

使用道具 举报

24

主题

157

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-1-7
在线时间
131 小时
发表于 2018-5-4 08:45:27 | 显示全部楼层
兄弟,你那个问题解决了没有?
回复

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-10-3
在线时间
15 小时
发表于 2018-5-4 18:20:24 | 显示全部楼层
帮顶,最近我也在搞emwin呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 09:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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