emWin如何屏蔽某些控件的触摸响应

2019-12-10 18:19发布

如下图所示:
demo.jpg (39.89 KB, 下载次数: 0) 下载附件 2019-8-2 16:59 上传

同一界面内有两个控件,listview和button;
想要实现触摸屏点击button有反应,
而触摸点击listview没有反应,即关闭listview的触摸功能,不知道如何设置?
(因为listview每一行太窄,手指触摸操作不方便,并且设备有实体按键,所有只用up 、down按键选择行即可)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
love_ourdev
1楼-- · 2019-12-10 19:25
 精彩回答 2  元偷偷看……
wq_601840968
2楼-- · 2019-12-10 20:17
love_ourdev 发表于 2019-8-3 10:07
在listview的Z序上创建一个透明子窗口盖在上面就行,不会增加绘图开销。

在原WINDOW上调用WINDOW_CreateEx();创建了一个子窗口,
并且WINDOW_SetBkColor(hWin,GUI_TRANSPARENT);设置子窗口为透明 {MOD};
但是显示的效果为:子窗口区域显示为白 {MOD},并没有显示listview控件,也没有显示原window的蓝 {MOD}背景;
好像显示的原window的默认颜 {MOD};
这是为什么?是还需要其他设置吗,还是我创建的子窗口方式不对?
love_ourdev
3楼-- · 2019-12-11 01:10
wq_601840968 发表于 2019-8-5 10:49
在原WINDOW上调用WINDOW_CreateEx();创建了一个子窗口,
并且WINDOW_SetBkColor(hWin,GUI_TRANSPARENT); ...

创建透明窗体是这样的:


  1. static void _cbCardView(WM_MESSAGE* pMsg)
  2. {
  3.   switch (pMsg->MsgId) {
  4.     case WM_PAINT:
  5.       break;
  6.     default:
  7.       WM_DefaultProc(pMsg);
  8.   }
  9. }

  10. WM_CreateWindowAsChild(8, 100, 210, 72, hParent, WM_CF_HASTRANS, _cbCardView, 0);
复制代码

注意其中的WM_CF_HASTRANS标志
wq_601840968
4楼-- · 2019-12-11 02:37
love_ourdev 发表于 2019-8-5 21:07
创建透明窗体是这样的:



亲测有效,感谢!
不过标志位需要加上WM_CF_SHOW,否则子窗口并没有生效
stm32_xiaocai
5楼-- · 2019-12-11 03:47
还有这种操作。。。屏蔽掉ListView的触摸事件可行么?
CoolBird007
6楼-- · 2019-12-11 04:02
 精彩回答 2  元偷偷看……

一周热门 更多>