huangstone 发表于 2024-4-8 14:35:06

emwin通过按钮增减Text中的数字,屏幕闪烁。

做了一个简单的东西。多个TEXT自绘,做成单选的方式,选中哪个TEXT,通过按钮对其数字进行修改。现象是,通过按钮修改数字时,屏幕闪烁的很厉害。界面大概是下面图像显示的样子。Run按钮是用来增/减 数字的。



按钮的代码如下:

      case WM_NOTIFY_PARENT:
                Id = WM_GetId(pMsg->hWinSrc);
                NCode = pMsg->Data.v;
                switch (Id)
                {
                case ID_BUTTON_RUN:
                        switch (NCode)
                        {
                        case WM_NOTIFICATION_RELEASED:
                              if (test_num < 10)
                                        test_num++;
                              else
                                        test_num = 0;
                              TEXT_SetDec(hText, test_num, 2, 0, 0, 0);
                              break;
                        }
                        break;

eric2013 发表于 2024-4-9 08:56:45

使用三缓存或者使能窗口使用存储设备即可解决闪烁问题。

huangstone 发表于 2024-4-9 09:42:35

按照硬汉的提示,问题已解决。万分感谢!
另外,由于使用使用AppWizard生成的代码,在调用使能窗口使用存储设备函数WM_SetCreateFlags(WM_CF_MEMDEV);,要注意调用位置。
/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
//
// Setup configuration dependent pointers
//
APPW_X_Setup();
       
WM_SetCreateFlags(WM_CF_MEMDEV);
//
// Initialize AppWizard
//
APPW_Init(APPW_PROJECT_PATH);
......

如果调用位置靠后,则不起作用。

再次感谢硬汉。
页: [1]
查看完整版本: emwin通过按钮增减Text中的数字,屏幕闪烁。