|
本帖最后由 wxqhit 于 2020-3-20 16:26 编辑
版主,
我之前就遇到过这个问题。当时没有抽出时间分析这个问题。
我需要自己画一些图形显示的界面,我就在主窗体函数背景区域来实现自己风格的图形风格
case WM_CREATE:
//
// Create timer to be used to modify the battery symbol
//
WM_CreateTimer(hItem, 0, 100, 0);
break;
case WM_TIMER:
case WIN_TESTBMP2:
WM_InvalidateWindow(hItem);
WM_RestartTimer(pMsg->Data.v, 100);
case WIN_SysConfig:
WM_InvalidateWindow(hItem);
WM_RestartTimer(pMsg->Data.v, 100);
break;
default:
WM_InvalidateWindow(hItem);
WM_RestartTimer(pMsg->Data.v, 3000);
break;
break;
我在主窗体定义了一个定时器。
默认情况下,我是3秒钟刷新一次。
WIN_SysConfig:这个是我要显示时间的界面。要实时显示小时分和秒。显示时间我用了emwin的text控件。
在这个界面下,很长一段时间就没有发生卡死。
还有一个WIN_TESTBMP2 是我要自己在主窗体背景区域画一些数据波形。
这个界面下,我把所有的主窗体的子窗体控件都隐藏了。就在背景区域用基本的点,线,还有字符显示函数完成图形的实时显示。
但是只要在这个界面下运行,过一会儿就卡死了。
这个是什么问题?
难道WM_InvalidateWindow(hItem);函数用的有问题hItem句柄指针就是主窗体的。
其他的子窗口控件就是主窗体的子窗口。我在创建子窗体的时候,选择的父类就是主窗体句柄。
这些都是在主窗体的回调函数里完成的。
|
|