2019-10-11 13:47发布
ken233333 发表于 2017-3-22 20:50 如何检测是否放开呢?
likunxue 发表于 2017-3-22 21:10 做个软件计数器,多少时间内没有触摸,就发送弹起消息
szjx1212 发表于 2017-3-22 21:10 读点,读不到就是放开了
最多设置5个标签!
读点,读不到就是放开了
做个软件计数器,多少时间内没有触摸,就发送弹起消息
如果资源不紧张,用一个定时器设置为单脉冲摸式,当有触摸发生时,检测是否是有效触摸,如果是,给定时器的计数器付一个初值,并开启计时器,在这段时间内如果手没有离开触屏,会产生重复触摸检测,每次都给定时器重置计数初值,这样,如果要触摸的时间不大于弹起的时间,定时器就不会产生中断,当没有触摸的时间大于定时器的计数值后,定时器产生中断,发送弹起消息,自动关闭定时器,
当然如果是多任务,可以开启一个任务来单独处理触摸屏事件,用消息机制的方式处理触摸的按下,弹起,长按,点按,及向下或向下滑动等!
/********************************************************************************************
函 数 名: 根据初点与终点反回滑动方向
调 用: CTP_HUADONGSHIBIE(void)
参 数: 在全局数据结构体中
反 回 值: 0示滑动,1向上,2向下,3向左,4向右
********************************************************************************************/
char CTP_HUADONGSHIBIE(void)
{
if(CTP.JiShuQi >= 2 )
{
int dy = CTP.my - CTP.By; //计算坐标变化值
int dx = CTP.Bx - CTP.mx;
if((CD_abs(dx) > 10)||(CD_abs(dy) > 10))
{ //做滑动方向识别
float fa = atan2(dy,dx)*57.29578f;//得到角度
if(fa >= -45 && fa < 45)return CHUMOXIAOXI_YOU; //向右
if(fa >= 45 && fa < 135)return CHUMOXIAOXI_SHANG; //向上
if(fa >= -135 && fa < -45)return CHUMOXIAOXI_XIA ; //向下
if((fa >= 135 && fa <= 180)||(fa >= -180 && fa < -135))return CHUMOXIAOXI_ZUO; //向左
}
}
return 0;
}
怎么样才能判断弹起啊?
需要再次检测吗?
一周热门 更多>