Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
关于模态window问题
发布于 2010-08-16 10:12:20 浏览:3449
订阅该版
我发现如果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
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
张世争
1
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部