大学生
最后登录1970-1-1
在线时间 小时
注册时间2015-1-21
|
楼主 |
发表于 2015-6-15 17:04:01
|
显示全部楼层
火哥,你好,我已经看了ledapp.c的例程,感觉与之前看的例程相似,现在我要做的是把开发板外部实时采集到的数据显示到emWin的界面上,数据我已采集到了(也处理好了),但是我现在无法再emWin中更新,及界面只是最初的形状;就例如要达到如下要求:在开发板之外的矩阵按键中按下一个按键,界面中就要实时的显示一个特定数据一样,我试过在上面贴所说的直接操作,也试过在while(1)函数中发送emWin的信号,即是如下:
void Task_GUI(void *p_arg)
{
......
Message.MsgId = MSG_CHANGE_MAIN_TEXT; //Message是个全局变量,在这设置他的ID
hDly=GUI_ExecDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0); //建立窗口,当中有TEXT部件
while(1)
{
.....
WM_SendMessage(WM_GetClientWindow(hDly), &Message); //发送信号,
.......
OSTimeDlyHMSM(0, 0, 0, 100,0,&err);
}
}
信号函数:
void _cbCallback(WM_MESSAGE* pMsg)
{
......
switch(pMsg->MsgId)
{
case MSG_CHANGE_MAIN_TEXT: //信号处理函数
sprintf(buf,"%4d",Display_Number);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT6),(const char*)buf); //在这里改变,但是这样也不行
break;
......
}
}
我很想知道emWin的窗口究竟是如何和外界通信的?????回调函数好像只能处理窗口本身的事件,当有窗口期外的部件产生的信号输入时怎么办??希望火哥能指导下,万分感激!! |
|