|
static void _cbGRAPH(WM_MESSAGE *pMsg)
{
WM_HWIN hDlg;
WM_HWIN hItem;
uint8_t Index = 0;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_INIT_DIALOG:
break;
// case WM_DELETE:
// GUI_Clear();
// break;
case WM_CREATE:
hItem = GRAPH_CreateEx(0, 0, 320, 219, hDlg, WM_CF_SHOW | WM_CF_MEMDEV, 0, GUI_ID_GRAPH0);
//
// Add graphs
//
ahData[0] = GRAPH_DATA_YT_Create(_aColor[0], 100, 0, 0);
ahData[1] = GRAPH_DATA_YT_Create(_aColor[1], 320, 0, 0);
ahData[2] = GRAPH_DATA_YT_Create(_aColor[2], 320, 0, 0);
GRAPH_AttachData(hItem, ahData[0]);
GRAPH_AttachData(hItem, ahData[1]);
GRAPH_AttachData(hItem, ahData[2]);
WIDGET_SetEffect(hItem, &WIDGET_Effect_None);
//
// Set graph attributes
//
GRAPH_SetGridDistX(hItem, 20);
GRAPH_SetGridDistY(hItem, 20);
// GRAPH_SetGridVis(hGraph, 1);
// GRAPH_SetGridFixedX(hItem, 1);
// GRAPH_SetUserDraw(hItem, _UserDraw);
WM_CreateTimer(hDlg, /* 接受信息的窗口的句柄 */
ID_TimerGraph, /* 用户定义的Id。如果不对同一窗口使用多个定时器,此值可以设置为零。 */
200, /* 周期,此周期过后指定窗口应收到消息*/
0); /* 留待将来使用,应为0 */
WM_SetFocus(hDlg);
GRAPH_SetGridVis(hItem, 1);
break;
case WM_TIMER:
if(WM_GetTimerId(pMsg->Data.v) == ID_TimerGraph)
{
GRAPH_DATA_YT_AddValue(ahData[0], (_HeartBeat[Index] / 2) + 20);
GRAPH_DATA_YT_AddValue(ahData[1], (_HeartBeat1[Index] / 2) + 100);
GRAPH_DATA_YT_AddValue(ahData[2], (_HeartBeat2[Index] / 2) + 190);
if (++Index == GUI_COUNTOF(_HeartBeat))
{
Index = 0;
}
WM_RestartTimer(pMsg->Data.v, 200);
}
break;
case WM_PAINT:
// GUI_Clear();
break;
case WM_KEY:
switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hDlg, 0);
CreateICONVIEW();
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
这是桌面往里进的
case WM_KEY:
switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(hDlg, 1);
GRAPH_Task();
_cbGRAPH是GRAPH_Task();的回调函数 |
|