菜单

APUS通过编码器实现三键控制界面操作

下载
鑫通态组态屏支持编码器输入设备三键:上一个、下一个、确认控制界面操作,支持控件如下:

注:IDE暂不支持列表框控件。

1. 在公共页上放置1个键盘控件添加收到数据事件

编写事件处理方法如下,此处F1为上一个,F2为下一下,F12为确认键

void Frm06::wMKeyboard8_vch_cb(uint16_t code, LvEvent e) {
	string s((char*)e.user_data);
	char c = s.c_str()[0];
	if(c==1){//F1键
		INDEV::encoderPrev();
	}
	else if(c==2){//F2键
		INDEV::encoderNext();
	}
	else if(c==12){//F12键
		INDEV::encoderEnter();
	}
}

注:

1. 此处是经转换处理的键码,与标准键码不一样。具体键码表附后。

2:不要用普通按键进行模拟,因为模拟器下同时启用了键盘驱动,可能会导致一次按键,执行两次(编码器执行一次,键盘执行一次)。

3:测试输入框时,要限定可接受字符,不然也会将Fn输入。 

2. 添加编码器索引

在目标页面中放置一些控件用于编码器控制,其控制顺序可通过设置【编码器索引】属性进行排序。

注:若索引为0,则不受编码器控制。

3. 启用扩展输入设备

在控件面板中任意位置右键,进入高级设置,启用扩展输入设备。

4. 编译测试

操作:按F1, F2, F12控制界面操作

5. 注意事项

a.  遇到下拉框、滑动轴控件时,点击【F12】,再用【F1】【F2】进行选择后,再次点击【F12】退出修改模式。

b.  遇到弧形进度条、滑块时,点击【F12】,再用【F1】【F2】进行选择后,再次点击【F12】退出修改模式。

c.  遇到输入框时,点击【F12】二次,显示输入法软键盘,再用【F1】【F2】选择到字符,点击【确认】则输入相应字符,输入完成后,移到【√】按钮【F12】退出修改模式。注:编码器暂不支持中文输入

d.  调用内置对话框时,最好设置一下对话框关闭后要得到焦点的控件,如

wMButton1->saveEncoderFocus();//在提示框前调用

pm->getMessageBox("测试")->show();

e.  通过代码打开窗口时(通过内置对应事件处理为“在当前窗口上弹出新窗口”,已经在内部处理,不必加入下面代码),如

ENCODER::saveGroup();//保存一下编码器操作控件组

wMMButton131->saveEncoderFocus();//保存一下焦点控件

pm->open("Frm14", stt::constant::PageMode::MODAL, NULL);//弹出窗口

f.  同理,通过代码关闭窗口时(通过内置对应事件处理为“关闭当前窗口”,已经在内部处理,不必加入下面代码),如

ENCODER::restoreGroup();//恢复编码器操作的控件组

ENCODER::restoreFocus();//恢复焦点控件

pm->close("Frm14");//关闭窗口

6. 键码表(不考虑按下shift)

0

1~12

F1~F12

13~22

0~9

23~48

A~Z或a~z

49

空格

50

+

51

-

52

*

53

/

54

=

55

.

56

~

57

[

58

]

59

\

60

;

61

'

62

,

63

ESC

最近修改: 2024-12-26Powered by