试试在输入文本后调用CEikEdwin::UpdateScrollBarsL()刷新一下滚动条。 如果上面的办法不行, 顺着这几个思路试试:
1. 复合控件 如果这个editCustomer_test是某个控件parent的子控件,则看看parent有没有重载
ComponentControl()和CountComponentControls()。如果没有则重载一下 CCoeControl* CXXXParent::ComponentControl(TInt /* aIndex */) const { return editCustomer_test; }
TInt CXXXParent::CountComponentControls() const { return 1; }
2. 绑定关系 如果上述方法无效,则在此基础上,在创建editCustomer_test的时候给它设一下Observer, MopParent, container之类的: void CXXXParent::ConstructL() { //... editCustomer_test->SetObserver(this); editCustomer_test->SetContainerWindowL(*this); editCustomer_test->SetMopParent(this); //此句要在创建ScrollBar之前 editCustomer_test->CreateScrollBarFrameL(); //... }
3.事件委托 如果上述方法无效,则在此基础上为parent重载OfferKeyEventL(),把事件委托给editCustomer_test:
TKeyResponse CXXXParent::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) { return editCustomer_test->OfferKeyEventL(aKeyEvent,aType); }
|