CEikEdwin 中光标的问题
我初始化了一个文本框但是默认第一次显示的时候光标是很短很粗的样式,当我把焦点移出文本框在进入后,光标就变成又细又长的了?
这是怎么回事?
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();