lvgl模拟器添加按键反馈
·
一、添加输入反馈回调函数
在win32drv.c 中的 lv_win32_init()函数中注册输入反馈回调函数:
static lv_indev_drv_t pointer_driver;
lv_indev_drv_init(&pointer_driver);
pointer_driver.type = LV_INDEV_TYPE_POINTER;
pointer_driver.read_cb = lv_win32_pointer_driver_read_callback;
pointer_driver.feedback_cb = lv_win32_pointer_driver_feedback_callback; //注册
lv_win32_pointer_device_object = lv_indev_drv_register(&pointer_driver);
二、实现反馈回调函数
例如播放一段声音。
#include <windows.h>
#pragma comment(lib, "Winmm.lib")
#include <mmsystem.h>
static void lv_win32_pointer_driver_feedback_callback(lv_indev_drv_t * indev_drv, uint8_t event)
{
if(event == LV_EVENT_CLICKED) //LV_EVENT_CLICKED事件被触发时相应
{
PlaySound(TEXT("./key_sound.wav"), NULL, SND_FILENAME | SND_ASYNC);
Sleep(1);
}
}
三、Code:Blocks修改链接器选项
Setting => Compiler => Global compiler settings => Linker settings添加-lwinmm.
如下图:
四、注意事项
4.1 有些对象默认使能了LV_EVENT_CLICKED事件,点击空白地方也有响应。
清除LV_EVENT_CLICKED事件
lv_obj_clear_flag(object, LV_OBJ_FLAG_CLICKABLE);
更多推荐
已为社区贡献7条内容
所有评论(0)