|
本帖最后由 gck 于 2022-8-12 13:48 编辑
如附件视频所示,诸位有无更好的办法或者看出问题所在,初学,懂得不多;
1、ui如下
2、代码如下
UINT window_2_event_handler(GX_WINDOW *window, GX_EVENT *event_ptr)
{
switch(event_ptr->gx_event_type){
case GX_SIGNAL(ID_VERTICAL_LIST, GX_EVENT_LIST_SELECT):
gx_vertical_list_selected_index_get(&window_2.window_2_vertical_list
,&selected_patient_index);
break;
default:
break;
}
return screen_template_event_process(window, event_ptr);
}
VOID ToggleScreen(GX_WIDGET *new_win, GX_WIDGET *old_win)
{
gx_widget_hide(old_win);
if (!new_win->gx_widget_parent){
gx_widget_attach((GX_WIDGET *)&page_2_container_screen, new_win);
}else{
gx_widget_show(new_win);
}
}
/******************************************************************************************/
/* Override the default event processing of "screen_template" to handle signals from my */
/* child widgets. */
/******************************************************************************************/
UINT screen_template_event_process(GX_WINDOW *window, GX_EVENT* event_ptr)
{
ULONG ret;
ret = event_ptr->gx_event_payload.gx_event_ulongdata;
switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:
/* Update title bar clock. */
update_title_clock((SCREEN_TEMPLATE_CONTROL_BLOCK *)window);
/* Start a timer to update title bar clock. */
gx_system_timer_start(window, SCREEN_CLOCK_TIMER_ID, GX_TICKS_SECOND, GX_TICKS_SECOND);
return gx_window_event_process(window, event_ptr);
case GX_EVENT_HIDE:
/* Stop clock update timer. */
gx_system_timer_stop(window, SCREEN_CLOCK_TIMER_ID);
return gx_window_event_process(window, event_ptr);
case GX_EVENT_TIMER:
if (event_ptr->gx_event_payload.gx_event_timer_id == SCREEN_CLOCK_TIMER_ID){
/* Update title bar clock. */
update_title_clock((SCREEN_TEMPLATE_CONTROL_BLOCK *)window);
}
break;
case GX_SIGNAL(ID_VERTICAL_LIST, GX_EVENT_LIST_SELECT):
if(ret == 0){
ToggleScreen((GX_WIDGET *) &calories_screen,(GX_WIDGET *)window);
}
else if(ret == 1){
ToggleScreen((GX_WIDGET *) &ekg_screen,(GX_WIDGET *)window);
}
else if(ret == 2){
ToggleScreen((GX_WIDGET *) &run_screen,(GX_WIDGET *)window);
}
else if(ret == 3){
ToggleScreen((GX_WIDGET *) &stand_screen,(GX_WIDGET *)window);
}
else if(ret == 4){
ToggleScreen((GX_WIDGET *) &yoga_screen,(GX_WIDGET *)window);
}
break;
default:
return gx_window_event_process(window, event_ptr);
}
return 0;
}
|
|