AppWizard工程中,RTOS多任务WM_SendMessageNoPara更新数据问题
请教,AppWizard生成的代码工程,RTOS中其他任务怎么使用WM_SendMessageNoPara往GUI任务SCREEN中的控件更新数据?谢谢!9楼,获取下Screen的句柄
AppWizard创建页面如何通过外面按键切换页面
https://www.armbbs.cn/forum.php?mod=viewthread&tid=123076&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2024-3-10 09:48
9楼,获取下Screen的句柄
AppWizard创建页面如何通过外面按键切换页面
谢谢硬汉哥,按照上面方法是可以更新数据,但是现在有个新问题出现了,如果只有一个SCREEN没问题,我现在有很多个SCREEN切换,其他板子需要一直不停的往这个板子发数据,然后数据通过WM_SendMessageNoPara不停地发到其中一个SCREEN上,屏幕触摸按钮切换到其他SCREEN时没问题,现在一切换回数据显示的SCREEN时,板子就死在WM_SendMessageNoPara这里。 本帖最后由 hpdell 于 2024-3-11 17:15 编辑
putin 发表于 2024-3-11 15:24
谢谢硬汉哥,按照上面方法是可以更新数据,但是现在有个新问题出现了,如果只有一个SCREEN没问题,我现在 ...
貌似是先获取需要发送到屏幕句柄的id(这个需要定义为全局的), 之后发送消息时带上这个屏幕句柄 参数
我目前就是这么干,完全木有问题哟
WM_HWINhWinCctv = NULL ;
void cbID_SCREEN_Cctv(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode, Id, i=0, id_index;
intpError;
volatile int res;
hWinCctv = pMsg->hWin;
switch (pMsg->MsgId)
{
...
case MSG_ID_CCTV_START: {
}break;
}
}
#define MSG_ID_CCTV_START (GUI_ID_USER + 0x0108)
WM_SendMessageNoPara(hWinCctv , MSG_ID_CCTV_START); 其 他地方发送消息, 那么在 cbID_SCREEN_Cctv 这个里面就可以收到消息了
hpdell 发表于 2024-3-11 17:10
貌似是先获取需要发送到屏幕句柄的id(这个需要定义为全局的), 之后发送消息时带上这个屏幕句柄 参数
...
我现在是这么做的,如果LCD只显示这一个 SCREEN 是没有问题,当我从其他 SCREEN 回到这个SCREEN 就死机了。 我在想,应该是需要获取当前显示SCREEN的句柄,WM_SendMessageNoPara只能发给当前显示的SCREEN,当前还在看手册中。 找到原因了,是切换到其他SCREEN时,删掉了原来的SCREEN,切换回原来的SCREEN时,原来的SCREEN的句柄变了。导致程序死了。
页:
[1]