|
我用ucGUI和ucOS做了一个对话框,上面有几个edit控件显示数据,创建了一个任务专门GUI_Exec(); 现在的情况是数据变了,但是edit的内容没有更新,我是把数据显示放在了对话框的回调函数的WM_PAINT消息处理里,发现只有对话框第一次显示的时候才发送这个消息,以后就没了,请教下该如何实现edit数据的更新呢?谢谢。。。。
/*****************************************************************
** FunctionName:void PaintDialog(WM_MESSAGE * pMsg)
** Function: to initialize the Dialog items
**
** call this function in _cbCallback --> WM_PAINT
*****************************************************************/
static void PaintDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),Longitude);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT1),Latitude);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT2),Altitude);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT6),Speed);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT5),FixMode);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT4),Valid_S);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT8),Visible_S);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT3),UTCDate);
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT7),UTCTime);
}
/*****************************************************************
** FunctionName:void InitDialog(WM_MESSAGE * pMsg)
** Function: to initialize the Dialog items
**
** call this function in _cbCallback --> WM_INIT_DIALOG
*****************************************************************/
static void InitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
}
/*********************************************************************
*
* Dialog callback routine
*/
static void _cbCallback(WM_MESSAGE * pMsg)
{
int NCode, Id;
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
PaintDialog(pMsg);
break;
case WM_INIT_DIALOG:
InitDialog(pMsg);
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(hWin, 1);
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hWin, 0);
break;
}
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case GUI_ID_BUTTON37:
if(NCode==WM_NOTIFICATION_RELEASED)
{
done=1;
GUI_EndDialog(hWin, 0);
}
break;
case GUI_ID_CANCEL:
if(NCode==WM_NOTIFICATION_RELEASED)
GUI_EndDialog(hWin, 0);
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
} |
|