SYMBIAN 响应窗体按键事件
2010-03-10 16:23:00 来源:WEB开发网一般定义一个变量
TInt iFocusedIndex; 用来作每个控件的映射,通过这个变量来判断当前哪个控件处于激活状态
在 ConstructL(const TRect& aRect) 设置初始值
一般定义二个函数,用于处理向上按钮和向上按钮
void MoveFocusUpL();
void MoveFocusDownL();
void CLoginViewContainer::MoveFocusDownL()
{
iFocusedIndex = (iFocusedIndex+1) % 2 + 2;
switch ( iFocusedIndex )
{
case 2:
iEditUserName->SetFocus(ETrue);
iEditPassword->SetFocus(EFalse);
break;
case 3:
iEditPassword->SetFocus(ETrue);
iEditUserName->SetFocus(EFalse);
break;
default:
break;
}
}
void CLoginViewContainer::MoveFocusUpL()
{
iFocusedIndex = (iFocusedIndex+1) % 2 + 2;
switch ( iFocusedIndex )
{
case 2:
iEditUserName->SetFocus(ETrue);
iEditPassword->SetFocus(EFalse);
break;
case 3:
iEditPassword->SetFocus(ETrue);
iEditUserName->SetFocus(EFalse);
break;
default:
break;
}
}
在OfferKeyEventL 时的default: 得先判断当前是不是第一项
if (iFocusedIndex == 6)
return iEditName->OfferKeyEventL(aKeyEvent, aType);
因为,当前窗口刚打开时,这一项默认为开始,在没有进行其它按钮操作时,直接在第一项输入数据后删除不了…. 记
赞助商链接