作为参数复位的一个函数,由于时钟原因,导致有三个参数无法刷新归零,
void
OnResetButtonPress(tWidget *pWidget)
{
sprintf(s_hours1,"%d",hours1=0);
sprintf(s_min1,"%d",min1=0);
sprintf(s_speed1,"%d",speed1=0);
sprintf(s_speed2,"%d",speed2=0);
sprintf(s_forward1m,"%d",forward1m=0);
sprintf(s_forward1s,"%d",forward1s=0);
sprintf(s_forward2m,"%d",forward2m=0);
sprintf(s_forward2s,"%d",forward2s=0);
sprintf(s_pause1m,"%d",pause1m=0);
sprintf(s_pause1s,"%d",pause1s=0);
sprintf(s_pause2m,"%d",pause2m=0);
sprintf(s_pause2s,"%d",pause2s=0);
sprintf(s_reverse1m,"%d",reverse1m=0);
sprintf(s_reverse1s,"%d",reverse1s=0);
sprintf(s_reverse2m,"%d",reverse2m=0);
sprintf(s_reverse2s,"%d",reverse2s=0);
sprintf(s_times1m,"%d",times1m=0);
sprintf(s_times1s,"%d",times1s=0);
sprintf(s_times2m,"%d",times2m=0);
sprintf(s_times2s,"%d",times2s=0);
WidgetPaint((tWidget *)(g_psPushButtonIndicators));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +2 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +5 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +8 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +11 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +13 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +16 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +18 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +21 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +23 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +26 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +28 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +31 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +33 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +36 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +38 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +41 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +43 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +46 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +48 ));
}
于是在不改变时钟的情况下,我改为了分段刷新,一部分在该函数里刷新,然后设置一个刷新状态参数refresh,另一段放在主函数的循环里刷新
如下:
void
OnResetButtonPress(tWidget *pWidget)
{
sprintf(s_hours1,"%d",hours1=0);
sprintf(s_min1,"%d",min1=0);
sprintf(s_speed1,"%d",speed1=0);
sprintf(s_speed2,"%d",speed2=0);
sprintf(s_forward1m,"%d",forward1m=0);
sprintf(s_forward1s,"%d",forward1s=0);
sprintf(s_forward2m,"%d",forward2m=0);
sprintf(s_forward2s,"%d",forward2s=0);
sprintf(s_pause1m,"%d",pause1m=0);
sprintf(s_pause1s,"%d",pause1s=0);
sprintf(s_pause2m,"%d",pause2m=0);
sprintf(s_pause2s,"%d",pause2s=0);
sprintf(s_reverse1m,"%d",reverse1m=0);
sprintf(s_reverse1s,"%d",reverse1s=0);
sprintf(s_reverse2m,"%d",reverse2m=0);
sprintf(s_reverse2s,"%d",reverse2s=0);
sprintf(s_times1m,"%d",times1m=0);
sprintf(s_times1s,"%d",times1s=0);
sprintf(s_times2m,"%d",times2m=0);
sprintf(s_times2s,"%d",times2s=0);
WidgetPaint((tWidget *)(g_psPushButtonIndicators)); //第一段刷新
WidgetPaint((tWidget *)(g_psPushButtonIndicators +2 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +5 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +8 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +11 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +13 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +16 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +18 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +21 ));
refreshstate=1;
}
main(void)
{ //
while(on)
{
// Process any messages from or for the widgets.
WidgetMessageQueueProcess();
if(refreshstate){
WidgetPaint((tWidget *)(g_psPushButtonIndicators +23 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +26 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +28 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +31 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +33 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +36 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +38 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +41 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +43 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +46 ));
WidgetPaint((tWidget *)(g_psPushButtonIndicators +48 ));
refreshstate=0;
}
}
该文章献丑了
此方法仅做参考,应该有更好的方法期待高手赐教。