CEikEdwin 中光标的问题

yang1994 2009-09-08 09:30:44
我初始化了一个文本框但是默认第一次显示的时候光标是很短很粗的样式,当我把焦点移出文本框在进入后,光标就变成又细又长的了?
这是怎么回事?

CEikEdwin* edwin = new ( ELeave ) CEikEdwin();
TInt flag = CEikEdwin::EJustAutoCurEnd | CEikEdwin::ENoWrap | CEikEdwin::ELineCursor;
edwin->ConstructL( flag, 10, 64, 1);
edwin->SetContainerWindowL( *this );
edwin->SetBorder( TGulBorder::ENone );
edwin->SetAknEditorInputMode( EAknEditorTextInputMode );
edwin->SetAknEditorCase( EAknEditorLowerCase );
edwin->SetFocus( ETrue );

CCharFormatLayer* FormatLayer = CEikonEnv::NewDefaultCharFormatLayerL();
TCharFormat charFormat;
TCharFormatMask charFormatMask;
FormatLayer->Sense(charFormat, charFormatMask);
Mem::FillZ(&charFormat, sizeof(TCharFormat));
Mem::FillZ(&charFormatMask, sizeof(TCharFormatMask));
TFontSpec sFontSpec = iFont->FontSpecInTwips();
charFormat.iFontSpec.iTypeface = sFontSpec.iTypeface;
charFormatMask.SetAttrib(EAttFontTypeface);
charFormat.iFontSpec.iHeight = sFontSpec.iHeight;
charFormatMask.SetAttrib(EAttFontHeight);
charFormat.iFontPresentation.iTextColor = KRgbBlack;
charFormatMask.SetAttrib(EAttColor);
FormatLayer->SetL(charFormat, charFormatMask);
edwin->SetCharFormatLayer( FormatLayer );
TInt baseline = ( iHeight + iFont->FontMaxHeight() + 1 ) / 2;
edwin->SetTextBaselineSpacing( baseline );
edwin->HandleTextChangedL();
edwin->SetRect( TRect(iWidth / 10 - 20,iHeight / 10 + 50,iWidth - 50 ,15) );
edwin->ActivateL();
...全文
147 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang1994 2009-09-09
  • 打赏
  • 举报
回复
必须在activatel之后调用setfocus

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧