EikEdwinEx.h
#ifndef __EIKEDWINEX_H__
#define __EIKEDWINEX_H__
#include <eikedwin.h>
class CEikEdwinEx : public CEikEdwin
{
public:
CEikEdwinEx() : CEikEdwin() {};
virtual ~CEikEdwinEx() {};
void SetCursorVisibilityL(TBool aEmphasis);
};
#endif//!__EIKEDWINEX_H__
EikEdwinEx.cpp
void CEikEdwinEx::SetCursorVisibilityL(TBool aEmphasis)
{
//implementation of function I got from EPOC5 sources
const TCursor::TVisibility textCursor=(aEmphasis? TCursor::EFCursorFlashing : TCursor::EFCursorInvisible);
const TCursor::TVisibility lineCursor=((iEdwinUserFlags&ELineCursor && aEmphasis)?
TCursor::EFCursorVisible : TCursor::EFCursorInvisible);
iTextView->SetCursorVisibilityL(lineCursor,textCursor);
}
1.在大小,内容确定的时候从资源文件中构建
rss:
RESOURCE EDWIN r_plaintexteditor_contact
{
lines = 1;
maxlength = 512;
avkon_flags = EAknEditorFlagNoT9;
allowed_input_modes = EAknEditorNumericInputMode;
default_input_mode = EAknEditorNumericInputMode;
}
.cpp:
CEikEdwinEx iEdwinContact = new (ELeave) CEikEdwinEx;
CleanupStack::PushL(iEdwinContact);
iEdwinContact->SetContainerWindowL(*this);
TResourceReader reader;
CCoeEnv* iCoeEnv;
iCoeEnv->CreateResourceReaderLC(reader, R_PLAINTEXTEDITOR_CONTACT);
iEdwinContact->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // reader
iEdwinContact->SetCursorPosL(0, EFalse);
iEdwinContact->SetFocus(ETrue);
2.
CEikEdwinEx iEdwinContent = new (ELeave) CEikEdwinEx;
CleanupStack::PushL(iEdwinContent);
iEdwinContent->SetContainerWindowL(*this);
iEdwinContent->ConstructL();
//设置当前支持的输入模式
iEdwinContent->SetAknEditorAllowedInputModes( EAknEditorNumericInputMode | EAknEditorTextInputMode );
iEdwinContent->SetAknEditorCase(EAknEditorLowerCase);