有很多問題。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初始化
}
一般這種情況都是按鍵抬起時再做事件。當然,也可以分成兩部分,長按的放在按鍵按下時處理,也就是我注釋掉的那三行。
|