好久没有更新blog文了.今天更新一篇.
输入法控件是我们UI中常用的控件之一.
今天我们来总结一下这个控件的使用技巧.
其实用法很简单.在这里我就不多说了.
直接上代码了.嘎嘎!!!
1.首先创建CEikEdwin对象
void CRichTextView::CreateRichText()
{
//初始化
iInputbox = new (ELeave)CEikEdwin;
iInputbox->SetContainerWindowL(*this);
iInputbox->SetMopParent(this);
iInputbox->ConstructL(0, 10, 256, 4);
iInputbox->SetAknEditorFlags(EEikEdwinJustAutoCurEnd);
//设置输入法的格式,比如字母,数字,拼音等
iInputbox->SetAknEditorAllowedInputModes(EAknEditorAllInputModes);
//设置输入文本模式.可以设置数字,或者密码
iInputbox->SetAknEditorInputMode(EAknEditorTextInputMode);
//为输入框设置边框
iInputbox->SetBorder(TGulBorder::ESingleBlack);
iInputbox->SetFocus(ETrue);
}
//设置输入框中的文本
void CRichTextView::SetInputText(const TDesC& aText)
{
if(iInputbox)
{
iInputbox->SetTextL(&aText);
}
}
//得到输入框中的文本
void CRichTextView::GetInputText(TDes& aText)
{
if (iInputbox)
{
iInputbox->GetText(aText);
}
}
void CRichTextView::Draw(const TRect& ) const
{
//画输入框的边框
TGulBorder border = iInputbox->Border();
// Draw the border so that it surrounds iEditor
TRect editorRect = iInputbox->Rect();
border.Draw(gc, border.OuterRect(editorRect));
}
注意:更多的情况我们需要切换输入法.但是会发现我们的控件切换不了.
还有会遇到数字键和C键不好使的问题.如何解决呢.
1.首先做为控件,一定要将我们的输入框控件压入控件栈
2.重载OfferKeyEventL
以上代码在N95上测试通过