|
分享的原因
1.并不是为了炫耀什么的,算是一种回报吧,做项目借鉴安富莱很多实例(本人也是第一次使用EMWIN做界面设计,也算是菜鸟一个了,呵呵)
2.本人百度搜索发现实体键控制的项目资料很少,关于EDIT更无人分享
废话不说直奔主题了
1.首先需要定义标志位
uint8_t Exited_flag=0; // 光标聚焦到EDIT句柄的标志位
uint8_t CursorCharPos=0;//该EDIT句柄中光标所在位置索引
uint8_t NumChars=0; //改EDIT句柄中数据位数
2. 当聚焦到EDIT句柄的时候
Exited_flag=1; 标志位置位
CursorCharPos = (u8)EDIT_GetCursorCharPos(hItem); //查询当前EDIT句柄的位置索引
NumChars=(u8)EDIT_GetNumChars(hItem); //查询当前EDIT句柄的数据位数
3. 当聚焦到非EDIT句柄的时候
Exited_flag=0; 标志位置位
CursorCharPos = 0; NumChars=0; //查询当前EDIT句柄的数据位数
4. 按键左按下时判断
if(Exited_flag==1) //进入EXIT 的标志位
{
if(CursorCharPos==0) //刚进入EXIT光标为O的判断
{
GUI_SendKeyMsg(GUI_KEY_BACKTAB, 1);
}
else
{
CursorCharPos--;
if(CursorCharPos==0)
{
Exited_flag=0;
}
GUI_SendKeyMsg(GUI_KEY_LEFT, 1);
}
}
else GUI_SendKeyMsg(GUI_KEY_BACKTAB, 1);
5. 按键右按下时判断
if(Exited_flag==1)
{
if(CursorCharPos<(NumChars-1))
{
CursorCharPos++;
GUI_SendKeyMsg(GUI_KEY_RIGHT, 1);
}
else
{
Exited_flag=0;
GUI_SendKeyMsg(GUI_KEY_TAB, 1);
}
}
else GUI_SendKeyMsg(GUI_KEY_TAB, 1);
6. 上下按键可控制数据加减
关于小工具键盘反应你懂得 ,呵呵 ,此方法是本人验证了很久才确定的 |
评分
-
查看全部评分
|