Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
关于模态window问题
发布于 2010-08-16 10:12:20 浏览:3430
订阅该版
我发现如果view上同时有一个非模态window,和一个模态window时(模态window在非模态上面。非模态的区域包括模态window的区域)。这时候点击非模态window的区域,能active该窗口,deactive模态窗口。但随后,模态窗口会再次active成为顶层显示。这样就造成LCD显示有瞬间切换的的叠影。 我本想在window.c,rtgui_win_event_handler函数修改 。。。。。 case RTGUI_EVENT_WIN_ACTIVATE: 。。。。。加上模态判断 。。。。。 case RTGUI_EVENT_WIN_DEACTIVATE: //屏蔽下面的代码 if (win->style & RTGUI_WIN_STYLE_MODAL) { /* do not deactivate a modal win, re-send win-show event */ struct rtgui_event_win_show eshow; RTGUI_EVENT_WIN_SHOW_INIT(&eshow); eshow.wid = win; rtgui_thread_send(RTGUI_TOPLEVEL(win)->server, RTGUI_EVENT(&eshow), sizeof(struct rtgui_event_win_show)); } 但发现无法运行。问题是执行这个函数时,窗口已经被设置为模态了。 如果ACTIVATE加上模态判断,就无法显示模态窗口,因为是先deactivate再activate的。 敢问版主,该如何解决这个问题呢。 我想其实就是判断用户点击的区域是不是模态窗口的区域,不是就不发送消息了。但是现在的函数好像不是这样写的。它的逻辑是如果有模态窗体,则给模态窗体重发显示消息。
查看更多
4
个回答
默认排序
按发布时间排序
ffxz
2010-08-16
这家伙很懒,什么也没写!
为什么会这样? 模态的意思不是,只要有模态的存在,那么激活的永远就应该是模态。 rt-thread/gui中的实现稍微有些不一样,就是如果模态的被去激活了,它会重新发起一个激活的动作。
Gavin_Li
2010-08-16
这家伙很懒,什么也没写!
是啊,我也觉得如果是有模态窗口的话,能激活和响应事件的应该只有该模态窗口。但是实际上,目前的GUI不是啊。我昨天试了。有模态窗口的条件下,仍然可以给其他的非模态窗口传递消息。比如在非模态窗口上的checkbox,textbox都可以选择输入。 这个问题其实可以修改workbench.c中的rtgui_workbench_event_handler函数中修复。 比如触摸点击事件 RTGUI_EVENT_MOUSE_BUTTON: if (top != RT_NULL && RTGUI_WIDGET(top)->event_handler != RT_NULL) { /×这里加上×/ if (RTGUI_WORKBENCH_IS_MODAL_MODE(workbench)) 。。。。。 else { RTGUI_WIDGET(top)->event_handler(RTGUI_WIDGET(top), event); } } 但是模态和非模态窗体间的activate 和de-activate还是存在切换叠屏问题,就不知道如何解决了。
bernard
2010-08-16
这家伙很懒,什么也没写!
哦,原来还存在输入事件的,我等会看看然后修复它。 至于模态 -> 非模态 -> 模态这样的切换,目前确实找不到比较好的解决方法。
撰写答案
登录
注册新账号
关注者
0
被浏览
3.4k
关于作者
Gavin_Li
这家伙很懒,什么也没写!
提问
28
回答
74
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部