|

楼主 |
发表于 2024-1-25 08:46:27
|
显示全部楼层
两个界面,按界面上的的prompt可以来回切换。回调有定时器,显示界面后prompt显示的数值1秒加一次,切屏后数值不增加,切回来才增加。代码如下
UINT _cbEventWindow1(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
static uint16_t i = 0;
switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:
gx_system_timer_start((GX_WIDGET *)widget, GUI_ID_Timer1, 1, 500);
gx_window_event_process(widget, event_ptr);
break;
case GX_EVENT_TIMER:
if (event_ptr->gx_event_payload.gx_event_timer_id == GUI_ID_Timer1)
{
gx_numeric_prompt_value_set((GX_NUMERIC_PROMPT *)&(window_1.window_1_prompt_5), i++);
}
gx_window_event_process(widget, event_ptr);
break;
case GX_SIGNAL(GUIX_ID_Prompt5, GX_EVENT_CLICKED):
gx_system_timer_stop((GX_WIDGET *)widget, GUI_ID_Timer1);
gx_system_timer_start((GX_WIDGET *)&window, GUI_ID_Timer0, 1, 500);
gx_window_event_process(widget, event_ptr);
break;
default:
return gx_window_event_process(widget, event_ptr);
}
return 0;
}
UINT _cbEventWindow0(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
static uint16_t i = 0;
switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:
gx_system_timer_start((GX_WIDGET *)widget, GUI_ID_Timer0, 1, 500);
gx_window_event_process(widget, event_ptr);
break;
case GX_EVENT_TIMER:
if (event_ptr->gx_event_payload.gx_event_timer_id == GUI_ID_Timer0)
{
gx_numeric_prompt_value_set((GX_NUMERIC_PROMPT *)&(window.window_prompt_3), i++);
}
gx_window_event_process(widget, event_ptr);
break;
case GX_SIGNAL(GUIX_ID_Num_promot3, GX_EVENT_CLICKED):
gx_system_timer_stop((GX_WIDGET *)widget, GUI_ID_Timer0);
gx_system_timer_start((GX_WIDGET *)&window_1, GUI_ID_Timer1, 1, 500);
gx_window_event_process(widget, event_ptr);
break;
default:
return gx_window_event_process(widget, event_ptr);
}
return 0;
} |
|