硬汉嵌入式论坛

 找回密码
 立即注册
查看: 191|回复: 2
收起左侧

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

[复制链接]

2

主题

6

回帖

12

积分

新手上路

积分
12
发表于 2024-4-8 14:35:06 | 显示全部楼层 |阅读模式
做了一个简单的东西。多个TEXT自绘,做成单选的方式,选中哪个TEXT,通过按钮对其数字进行修改。现象是,通过按钮修改数字时,屏幕闪烁的很厉害。界面大概是下面图像显示的样子。Run按钮是用来增/减 数字的。

微信图片_20240408143030.jpg

按钮的代码如下:

        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[_cur_btn], test_num, 2, 0, 0, 0);
                                break;
                        }
                        break;

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2024-4-9 08:56:45 | 显示全部楼层
使用三缓存或者使能窗口使用存储设备即可解决闪烁问题。
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 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);
  ......

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

再次感谢硬汉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 14:01 , Processed in 0.261812 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表