硬汉嵌入式论坛

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

[emWin] listview如何实现这个效果

[复制链接]

45

主题

70

回帖

205

积分

高级会员

积分
205
发表于 2018-9-21 16:38:53 | 显示全部楼层 |阅读模式
在模拟器中,按键盘的上下左右键,可以实现选中不同单元格效果!
那么,我在stm32中,不支持触摸,按下键盘的上下左右按键,怎么实现这个效果呢?
因为模拟器中的多余代码去实现这个效果。
我在stm32的程序中添加了GUI_SendKeyMsg(GUI_KEY_LEFT, 1); GUI_SendKeyMsg(GUI_KEY_UP, 1);等。是否需要周期调用GUI_GetKey()函数?
另外,listview控件是否可聚焦。
还有在模拟器中用鼠标点一下,单元格背景就变成蓝色,这个效果在stm32中不支持触摸怎么实现?
谢谢各位大哥们了!!!!


list_.gif
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-9-21 16:46:43 | 显示全部楼层
最后一个问题用LISTVIEW_SetSel(hItem,0);  LISTVIEW_SetSelCol(hItem,0);可以解决!就是listview怎么支持key的问题了。
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-9-21 16:53:43 | 显示全部楼层
看了硬汉的教程,listview可支持上下左右按键,但是要先聚焦到这控件,那么怎么聚焦到listview啊。而且是否需要在回调函数中专门处理这些按键。
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-9-21 17:22:03 | 显示全部楼层
创建方式为
WM_HWIN CreateDTWindow(void) {
    WM_HWIN hWin;
    hWin = GUI_CreateDialogBox(_DTDialogCreate, GUI_COUNTOF(_DTDialogCreate), _cbDTDialog, WM_HBKWIN, 0, 0);
    return hWin;
}
然后在case WM_INIT_DIALOG:中
                                        hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
                                        WM_SetFocus(hItem);
都没有聚焦(现象是发送GUI_KEY_LEFT,右键没有反应);
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-9-21 17:28:10 | 显示全部楼层
chinashaoshu 发表于 2018-9-21 17:22
创建方式为
WM_HWIN CreateDTWindow(void) {
    WM_HWIN hWin;

为了测试方便,当前对话框上面仅显示一个listview控件控件,其它控件都不创建,试试。

这种创建后,聚焦就在对话框的第1个控件上。
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-9-21 17:44:05 | 显示全部楼层
谢谢硬汉哥,是我二了,在左右按键都发送的左键值,又由于一开始选中的最左边的一列,所以以为没效果呢!!!
还有一个问题,在切换窗口后,每次都重新聚焦到新窗口的第一个控件,是吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-9-22 01:54:11 | 显示全部楼层
chinashaoshu 发表于 2018-9-21 17:44
谢谢硬汉哥,是我二了,在左右按键都发送的左键值,又由于一开始选中的最左边的一列,所以以为没效果呢!! ...

如果是新建的窗口,默认都是聚焦到你创建对话框时,资源列表里面第1个支持聚焦的控件上。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 13:34 , Processed in 0.040668 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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