硬汉嵌入式论坛

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

[emWin] 如何在不定死资源表元素的情况下,创建阻塞式对话框

[复制链接]

11

主题

105

回帖

138

积分

初级会员

积分
138
发表于 2017-7-19 16:48:07 | 显示全部楼层 |阅读模式
由于资源表的元素是定死的,也就是那个只读的数组内部元素是定死的,但是我需要动态变化,所以肯定不能用一开始就定死元素的方式来创建资源表。
简单来说现在是希望创建一个有阻塞式对话框功能的弹出窗口,在这个窗口上放上小键盘,但是之前窗口显示的那些内容不能清除。
之前在论坛找了下,发现了这个帖子‘https://forum.anfulai.cn/forum.php?mod=viewthread&tid=8358’,但是这依旧使用的是资源表的形式用了函数‘GUI_CreateDialogBox’,使用的是资源表。
实际上,现在已经实现了点击edit直接切换到界面m,在界面m上放上小键盘,但是这种方式会删除之前的窗口。还是希望能以弹出窗口的形式来做功能,不知道可行不可行。
如果不可行的话我得考虑增加一个现实函数来专门显示edit弹出的小键盘,但是显示的时候不使用‘WM_DeleteWindow()’,理论上来讲应该是可行的(覆盖之前层),只是得注意不用的时候要删除小键盘的句柄。
不知道还有没有好一点的方式呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-7-20 01:12:59 | 显示全部楼层
不用删除之前的窗口,直接弹出小键盘窗口就行了。没理解你的帖子里面的顾虑是什么。
回复

使用道具 举报

11

主题

105

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2017-7-20 09:31:58 | 显示全部楼层

回 eric2013 的帖子

eric2013:不用删除之前的窗口,直接弹出小键盘窗口就行了。没理解你的帖子里面的顾虑是什么。 (2017-07-20 01:12) 
我可能没说清楚吧,抱歉。
其实就是希望弹出一个小键盘窗口(原始窗口800*480的情况下,小键盘窗口是中间一部分不是全覆盖)。
这个小键盘窗口应该具有阻塞式对话框的属性,也就是说弹出后只能点击小键盘区域,点击其他区域无效。
但是阻塞式对话框必须创建资源表,而我又不能使用这种方式创建,所以问一下大家还有没有别的方式呢?
硬汉哥说的那个方式今早我试了呢,确实弹出了小键盘区域并且之前窗口的内容也没删除,但是还是能点击之前窗口的按钮等。
回复

使用道具 举报

11

主题

105

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2017-7-20 09:35:16 | 显示全部楼层

图1

图1

图2

图2

如图2,红色方框区域的按钮还是能被点击的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-7-20 11:02:21 | 显示全部楼层

回 笔记本的自嘲 的帖子

笔记本的自嘲:
如图2,红色方框区域的按钮还是能被点击的。 (2017-07-20 09:35)
明白了,原来顾虑的是这个。
创建了小键盘之后,调用函数WM_MakeModal()设置模态窗口,注意此函数的参数,如果对话框的主体窗口是FrameWin,记得获取下客户区窗口,其它直接填句柄即可。
回复

使用道具 举报

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
发表于 2017-7-20 13:51:56 | 显示全部楼层

回 笔记本的自嘲 的帖子

笔记本的自嘲:我可能没说清楚吧,抱歉。
其实就是希望弹出一个小键盘窗口(原始窗口800*480的情况下,小键盘窗口是中间一部分不是全覆盖)。
这个小键盘窗口应该具有阻塞式对话框的属性,也就是说弹出后只能点击小键盘区域,点击其他区域无效。
但是阻塞式对话框必须创建资源表,而我又不能使 .. (2017-07-20 09:31) 
WM_MakeModal()可实现之?
回复

使用道具 举报

11

主题

105

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2017-7-21 15:27:35 | 显示全部楼层

回 jplzl10000 的帖子

jplzl10000:WM_MakeModal()可实现之? (2017-07-20 13:51) 
已经试了,不行。后来修改了方法,在触摸检测的时候直接检测当前按键是不是在当前界面上,只有在windowID跟cell的windowID一致才能触摸
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 15:22 , Processed in 0.048256 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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