如何使用CAknSearchField

 

CAknSingleStyleListBox* iListBox;

CAknSearchField* iListBoxSearchField;

//defined  

CGulIcon* defaultIcon = NULL;

CAknSearchField* searchField =   CAknSearchField::NewL( *this, CAknSearchField::EFixed,defaultIcon, 40 );

CleanupStack::PushL ( searchField );  

searchField->SetSkinEnabledL(ETrue);

 CAknFilteredTextListBoxModel* filteredModel =   static_cast< CAknFilteredTextListBoxModel* >( iListBox->Model() );  

filteredModel->CreateFilterL( iListBox, searchField );  

searchField->Editor().SetAknEditorInputMode(EAknEditorTextInputMode);  

CleanupStack::Pop( searchField );  

searchField->MakeVisible( ETrue );

 iListBoxSearchField = searchField; //in

//SizeChanged()  

iListBox->SizeChanged();  

AknFind::HandleFixedFindSizeChanged( this, ( CAknColumnListBox *)iListBox, iListBoxSearchField );//use HandleFixedFindSizeChanged

//OfferKeyEvent

if ( iListBoxSearchField != NULL  && iListBoxSearchField->OfferKeyEventL( aKeyEvent, aType ) == WasConsumed )        

{        

return EKeyWasConsumed;        

 }

下边两个不要忘了,要不然会改变不了输入法的(我就在这个地方折腾了一天,郁闷呀!)

TInt CContactContainer::CountComponentControls() const

 {  

 return 2;  

}

CCoeControl* CContactContainer::ComponentControl(TInt aIndex) const

 {    

 switch ( aIndex )        

{        

case 0:            

return iListBox;   

case 1:    

return iListBoxSearchField;        

default:            

return NULL;        

}  

}

 //取得指定项的操作

TInt CurrentItem = iListBox->View()->CurrentItemIndex ();   

CAknFilteredTextListBoxModel* Model = STATIC_CAST (CAknFilteredTextListBoxModel*, iListBox->Model ());  

TInt index = Model->Filter()->FilteredItemIndex (CurrentItem);

  if(  index < 0 )     

  return NULL;   

CDesCArray *itemList =  static_cast<CDesCArray*>( iListBox->Model()->ItemTextArray() );   

TPtrC ptrin=(*itemList)[index];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值