有很多问题。if语句的用法问题。if语句每一个分支都必须是唯一的。你的if语句第一个i<10000,和第二个i>50,当i=51---9999的时候,两个if分支是同事触发的。
然后是按键事件问题,一般这个情况都是在按键抬起(exKeyValueFlag == 0)时进行事件处理。
修改程序如下:
if(exKeyValueFlag != 0)
{
if(i<10000) {
i++;
}
else{
i=10000;//i达到最大值时定住,防止溢出
}
}
else //当按键抬起时做判断
{
if(i > 1500) {
longkeyflag = 1;
}
else{ //这里也可以按照你的意思:if(i>50 && i<200)
shortkeyflag = 1;
}
}
i = 0;//i初始化
}
--------------------------------------
前天发的好像不见了。再发以下。
有很多问题。if语句的用法问题。if语句每一个分支都必须是唯一的。你的if语句第一个i<10000,和第二个i>50,当i=51---9999的时候,两个if分支是同事触发的。
然后是按键事件问题,一般这个情况都是在按键抬起(exKeyValueFlag == 0)时进行事件处理。
if(exKeyValueFlag != 0)
{
if(i<10000) {
i++;
}
else{
i=10000;//i达到最大值时定住,防止溢出
}
//if(i > 1500) {
// longkeyflag = 1;
// }
}
else //当按键抬起时做判断
{
if(i > 1500) {
longkeyflag = 1;
}
else{ //这里也可以按照你的意思:if(i>50 && i<200)
shortkeyflag = 1;
}
}
i = 0;//i初始化
}
一般这种情况都是按键抬起时再做事件。当然,也可以分成两部分,长按的放在按键按下时处理,也就是我注释掉的那三行。
|