stemwin 使用GUI_EndDialog切换页面死机的解决
2019-06-01 来源:eefocus
最近学时使用emwin 在切换窗口时进入HardFault_Handler,后来发现在创建的窗口内没有处理WM_PAINT消息的操作,添加后在case内执行清屏,这样在切换界面时就不会发生死机。示意代码如下:
static void _cbDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
int NCode;
int Id;
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case ID_BUTTON_0: // Notifications sent by 'BACK'
switch (NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
GUI_EndDialog(pMsg->hWin, 0);//结束当前对话框
g_nKeyHandle = CreateMainWindow();//创建新的页面
break;
}
break;
}
break;
}
}
切换界面死机的情况有很多,目前我遇到的情况这样可以解决。记录下方便以后看
上一篇:STM32 正交编码器代码
下一篇:stemwin 实现显示屏幕滑动