输入法状态总结
来源:互联网 发布:社交网络土豆在线观看 编辑:程序博客网 时间:2024/05/16 09:23
今天再次研究了一下CEikEdwin的输入法状态。总结了一下代码。 inputImage是输入法状态。shiftImage是Shift状态。 void CQGEditBox::DrawInputMethodIndicator(const TRect& aRect) CAknIndicatorContainer* indicator = editingState->IndicatorContainer(); TInt inputImage = -1; TInt shiftImage = -1; TSize size = Graphics()->SurfaceSize(inputImage); pos.iX += size.iWidth; ==================================================================================== Symbian设置CEikEdwin字体 先说第一种,它只适用于2nd TCharFormat charFormat; CCharFormatLayer* FormatLayer1 = CCharFormatLayer::NewL(charFormat,charMask);
{
MAknEditingStateIndicator* editingState = CAknEnv::Static()->EditingStateIndicator();
if (!editingState)
return;
if (!indicator)
return;
if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorPinyin)))
{
inputImage = iImage_input[0];
}
else if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorStroke)))
{
inputImage = iImage_input[1];
}
else if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorUpperCase)) ||
indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorUpperCaseSelect)) ||
indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorQwertyShift)))
{
inputImage = iImage_input[2];
}
else if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorTextCase)) ||
indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorTextCaseSelect)))
{
inputImage = iImage_input[3];
}
else if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorLowerCase)) ||
indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorLowerCaseSelect)))
{
inputImage = iImage_input[4];
}
else if(indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorNumberCase)) ||
indicator->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorNumberCaseSelect)))
{
inputImage = iImage_input[5];
}
if(indicator->IndicatorState(S_uid(111)))
{
shiftImage = iImage_shift[0];
}
else if(indicator->IndicatorState(S_uid(112)))
{
shiftImage = iImage_shift[1];
}
TPoint pos(aRect.iTl.iX, aRect.iTl.iY-size.iHeight);
Graphics()->DrawSurface(pos, inputImage);
Graphics()->DrawSurface(pos, shiftImage);
}
Mem::FillZ(&charFormat, sizeof (TCharFormat));
TCharFormatMask charMask;
Mem::FillZ(&charMask, sizeof (TCharFormatMask));
TFontSpec sFontSpec = PocoUtils::NormalFont()->FontSpecInTwips();
charFormat.iFontSpec.iTypeface = sFontSpec.iTypeface;
charMask.SetAttrib(EAttFontTypeface);
charFormat.iFontSpec.iHeight = sFontSpec.iHeight;
charMask.SetAttrib(EAttFontHeight);
charFormat.iFontPresentation.iTextColor = KDarkGreenColour;
charMask.SetAttrib(EAttColor);
charFormat.iFontPresentation.iStrikethrough = (TFontStrikethrough)EFalse;
charMask.SetAttrib(EAttFontStrikethrough);
charFormat.iFontPresentation.iUnderline = (TFontUnderline)EFalse;
charMask.SetAttrib(EAttFontUnderline);
iTitle->SetCharFormatLayer(FormatLayer1);
再来介绍第二种,它使用于2nd和3rd
CFont* font=NULL;
#ifdef _UIQ3_SDK_
TFontSpec fontSpec=CEikonEnv::Static()->NormalFont()->FontSpecInTwips();
fontSpec.iHeight-=fontSpec.iHeight/4;
fontSpec.iFontStyle.SetPosture(EPostureUpright);
CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips(font,fontSpec);
#else
font=CEikonEnv::Static()->NormalFont();
#endif
CGlobalText* globalText = (CGlobalText*)edwin->Text();
TCharFormat charFormat;
Mem::FillZ(&charFormat, sizeof (TCharFormat));
TCharFormatMask charMask;
Mem::FillZ(&charMask, sizeof (TCharFormatMask));
TFontSpec sFontSpec = font->FontSpecInTwips();
charFormat.iFontSpec.iTypeface = sFontSpec.iTypeface;
charMask.SetAttrib(EAttFontTypeface);
charFormat.iFontSpec.iHeight = sFontSpec.iHeight;
charMask.SetAttrib(EAttFontHeight);
charFormat.iFontPresentation.iTextColor = KDarkGreenColour;
charMask.SetAttrib(EAttColor);
globalText->ApplyCharFormatL(charFormat,charMask,0,edwin->TextLength());
- 输入法状态总结
- js 设置 输入法 状态
- Symbian获取输入法状态
- css控制输入法状态
- 输入法语言支持状态
- suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
- 输入法状态控制 ( IME )
- 用API控制输入法状态
- 获取当前的输入法状态
- 输入法状态条切换出来
- 输入法编程总结
- 输入法信息捕获总结
- WinCE输入法使用总结
- 五笔输入法总结
- 总结系列--输入法相关
- Windows Mobile下界面自适应输入法状态
- Windows Mobile下界面自适应输入法状态
- Windows Mobile 设定TextBox的输入法状态
- Oracle checkpoint详解
- 2011-6-22
- Symbian设置CEikEdwin字体
- 腾讯微博的架构
- 使用CParaFormat和TCharFormat对文本进行格式化
- 输入法状态总结
- ER图的例子
- CRichText 应用举例
- 非递归遍历二叉树
- linux sound recording
- 多行文本框的应用。可以修改字体型号,字体颜色,行间距
- VC++2010中的"类向导"失效的解决办法
- 步步高十亿广告:撒钱还是精准投放
- 感恩的心