初级会员
- 积分
- 63
- 金钱
- 63
- 注册时间
- 2016-10-28
- 在线时间
- 13 小时
|
15金钱
本帖最后由 绵延的山峰 于 2018-3-23 14:13 编辑
WM_SendMessageNoPara()函数的使用:
我想在低优先级的下级任务调用此函数发送信息给上级界面,告知上级界面各个传感器的状态并以此绘画界面,
其中设global_hWin是全局变量,调用创建窗口函数:global_hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
返回给global_hWin变量,故global_hWin就是上级界面窗口的句柄; Metal_sensor_ID为自定义的WM_USER消息;
运行的时候问题来了!
当程序走到WM_SendMessageNoPara(global_hWin, Metal_sensor_ID);的时候,调用一次之后程序却调入 while (1) {
GUI_Delay(100);
}
这个死循环中,一直都没有切换回下级任务,注释掉WM_SendMessageNoPara此句后可以正常显示与切换。
我把上级界面菜单优先级设置为5,下级任务设置为6,只要一调用到WM_SendMessageNoPara这个函数,就一直在跑界面,不能切换到下级任务了。
请教到底是什么原因?
初学emWin,您的一两句提醒就可能让后来者少走很多弯路,谢谢。
|
|