symbian CEikEdwin文字显示 汇总(转帖并增加)
2010-05-15 00:33
351 查看
1。首先如何设置字体可参考如下代码:
CCharFormatLayer* formatLayer=CEikonEnv::NewDefaultCharFormatLayerL(); TCharFormat charFormat; TCharFormatMask charFormatMask; formatLayer->Sense(charFormat, charFormatMask); TRgb defaultcolor; AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), defaultcolor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG2/*EAknsCIQsnLineColorsCG1 */); charFormat.iFontPresentation.iTextColor = defaultcolor; //字体颜色 formatLayer->SetL(charFormat, charFormatMask); iEditor = new(ELeave) CEikEdwin; iEditor->SetContainerWindowL( *this ); iEditor->SetCharFormatLayer(formatLayer); //pass the owner ship
2.插入换行可参考如下代码:
TBuf<256> iBuf; iBuf.Format(_L("abc")); iBuf.Append(CEditableText::ELineBreak); //插入换行符 iBuf.Append(_L("efg")); iEditor->SetTextL(&text); //////////////////////////////////////////////////// TInt position1 = iEikEdwin->ScrollBarFrame()->VerticalScrollBar()->ThumbPosition() ; //如何得到滚动条的位置 iEikEdwin->HandleScrollEventL(iEikEdwin->ScrollBarFrame()->VerticalScrollBar() , EEikScrollPageUp ) ; //让滚动条翻页 //////////////////////////////////////////////////
3.设置为系统的背景色
iBgContext = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgAreaMain, iEikEdwin->Rect() ,ETrue); iEikEdwin->SetSkinBackgroundControlContextL(iBgContext); iEikEdwin->SetExtentToWholeScreen(); void CnewlabelAppView::SizeChanged() { iEikEdwin->SetExtent(TPoint(0 , 0) , TSize(200 , 200)) ; if(iBgContext) { iBgContext->SetRect(Rect()); if ( &Window() ) { iBgContext->SetParentPos( PositionRelativeToScreen() ); } } iEikEdwin->UpdateScrollBarsL() ; DrawNow(); } //////////////////////////////////////////////
4.更改了字体后滚动条长度不适应的问题
aRtEdCtrl->SetRect(edTextRect); aRtEdCtrl->CreateScrollBarFrameL()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EOn); TPoint ScrollBarPoint(edTextRect.iBr.iX, edTextRect.iTl.iY); TSize ScrollBarSize = aRtEdCtrl->ScrollBarFrame()->VerticalScrollBar()->Rect().Size(); aRtEdCtrl->ScrollBarFrame()->VerticalScrollBar()->SetRect(TRect(ScrollBarPoint, ScrollBarSize)); ///////////////////////////////////////////
5.CEikEdwin如何实现翻页功能
直接翻页到最后
iEditor->MoveDisplayL(TCursorPosition::EFPageUp);
翻到下一页
HandleScrollEventL (CEikScrollBar *aScrollBar, TEikScrollEvent aEventType)
iDetailEditor->HandleScrollEventL(iDetailEditor->ScrollBarFrame()->VerticalScrollBar() ,
EEikScrollDown ) ;
///////////////////////////////////////////
6.滚动条背景色为白色
一般是没有给滚动条(子控件)传递正确的Context,可以自行实现
TTypeUid::Ptr CSoftmgrSoftDetail::MopSupplyObject(TTypeUid aId) { if (aId.iUid == MAknsControlContext::ETypeId && iBgContext != NULL) { return MAknsControlContext::SupplyMopObject(aId, iBgContext); } return CCoeControl::MopSupplyObject(aId); } ////////////////////////////////////////////
7.关于光标初始在字符串最后,调用SetCursor(0 , EFalse)
记住要在Activate后面去设置
//////////////////////////////////////////////
8.滚动条无法显示问题
在设置页面的大小时候要给滚动条留下位置,否则Edwin会占据整个页面滚动条无法显示
TRect rc = Rect() ;
TSize size(rc.Width() - 8/*CEikScrollBar::DefaultScrollBarBreadth() */ , rc.Height()) ;
iDetailEditor->SetExtent(TPoint(0 , 0) , size) ;
10.设置光标大小
要active后再设置focus
edwin->ActivateL();
edwin->SetFocus( ETrue );
相关文章推荐
- CEikEdwin不能显示字符的问题
- 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法
- iOS 之textview 的问题汇总(显示边框的问题,文字居中,placeHolder)
- Symbian设置CEikEdwin字体
- 手写Symbian文字显示排版代码
- Symbian CEikEdwin 输入框使用总结
- 群里关于 CEikEdwin 的输入中文的讨论(symbian )
- 卷帘一样的文字显示效果,为你的网页增加不少生色哦!
- vue的iview的button增加title显示文字
- Symbian CEikEdwin 输入框使用总结
- 鼠标放上去,div高度随文字增加,并显示剩余的文字。
- CEikEdwin 与 CPAlbImageViewerBasic 在Symbian 2nd上的奇怪现象
- symbian 强制打开CEikEdwin关联的虚拟键盘
- 卷帘一样的文字显示效果,为你的网页增加不少生色哦!
- Symbian设置CEikEdwin字体
- symbian 在固定长度中显示文字
- 一次增加一个文字,逐次显示的文字显示动画
- 自动截取文字,css实现文字超出显示省略汇总
- 码云本周更新汇总,项目详情页增加分类显示
- Symbian设置CEikEdwin字体