zoukankan      html  css  js  c++  java
  • S60 3rd中怎么设置字体类型与字体大小!!!!!(转)

    1. #7
      Super ContributorTurboC's Avatar
      Join Date
      Jul 2008
      Posts
      1,201
       问题已经解决,具体如下:
        
      //首先查找机器支持的字体个数.
      TInt iNumTypefaces = iCoeEnv->ScreenDevice()->NumTypefaces();

      //然后就可以查找所有的字体
      for(TInt i = 0; i < iNumTypefaces; i++)
      {
      TTypefaceSupport myTypefaceSupport;
      iCoeEnv->ScreenDevice()->TypefaceSupport(myTypefaceSupport,i);
      TBuf<KMaxTypefaceNameLength> aTemp;
      aTemp.Copy(myTypefaceSupport.iTypeface.iName.Des());
      }//这样就可以得到所有的aTypefaceName.

      //设置指定的字体
      TFontSpec fontSpec;
      fontSpec.iTypeface.iName= aTemp;
      fontSpec.iHeight = 40;
      (这个地方也可以使用相对于别的字体的高度如下:
       const CFont* font = CEikonEnv::Static()->SymbolFont();
       fontSpec.iHeight = font->FontSpecInTwips().iHeight + 10;
      )
      //生成新的字体
      CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips(newFont, fontSpec);
      //最后使用字体
      CWindowGc::UseFont(newFont);
      TurboC
      珍惜每一次机会
    2. #6
      Super Contributororacle3's Avatar
      Join Date
      Sep 2007
      Posts
      1,003
       字体大小样式,全套的(注释掉的代码也是有效的)
      const CFont* font = iEikonEnv->SymbolFont();
      iOffScreenBitmapGc->UseFont( font );
      iOffScreenBitmapGc->DrawText(_L("hello world"),TPoint(0,20) );
      iOffScreenBitmapGc->DiscardFont();

      CFont* fontNew = NULL;
      TFontSpec fontSpec;
      fontSpec.iTypeface.iName=font->FontSpecInTwips().iTypeface.iName;// KFontName;
      //if (text->Bold())
      //{
      // // Set Bold
      // fontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold);
      //}
      //if (text->Italic())
      //{
      // // Set Italic
      // fontSpec.iFontStyle.SetPosture(EPostureItalic);
      //}
      //fontSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap);
      //fontSpec.iHeight=text->Height();
      //// Set Underline
      //if (text->Underline())
      //{
      // iGc->SetUnderlineStyle(EUnderlineOn);
      //}

      fontSpec.iHeight = font->FontSpecInTwips().iHeight + 40;

      iOffScreenBitmapDevice->GetNearestFontInTwips(fontNew,fontSpec);
      if (fontNew != NULL)
      {
      iOffScreenBitmapGc->UseFont( fontNew );
      iOffScreenBitmapGc->DrawText(_L("hello world"),TPoint(0,100) );
      iOffScreenBitmapGc->DiscardFont();

      iOffScreenBitmapDevice->ReleaseFont(fontNew);
      }
    3. #5
      Super ContributorTurboC's Avatar
      Join Date
      Jul 2008
      Posts
      1,201
      Quote Originally Posted by red_shi View Post
      cxt回的

      可以参考:
      » Symbian OS v9.1 » Symbian OS guide » Graphics » Using Graphics Device Interface » Using Fonts » How to select a font


      Symbian OS v9.1 » Symbian OS guide » Graphics » Using Graphics Device Interface » Using Fonts » How to use typefaces

      选择一个字体并使用。
      兄弟这个我一开始就看了, SDK Help中没有列出来啊,
      TurboC
      珍惜每一次机会
    4. #4
      Forum Nokia Championred_shi's Avatar
      Join Date
      Nov 2005
      Posts
      1,904
      Quote Originally Posted by TurboC View Post
      看样子是我没有说清楚, 再说明一下:
      关于SDK中TFontSpec(const TDesC &aTypefaceName, TInt aHeight)的两个参数,是这样说的:
      aTypefaceName :The name of the typeface (e.g. "Roman"). 
      aHeight :The height of the typeface, in twips. 
      这里有几个问题:
      1、怎么找到aTypefaceName的列表呢?好尝试各字体的显示效果,然后加以选择。SDK中没有找到,或者我找法有问题。。。
      2、关于twips这个单位,一直没有概念,大家能够帮忙解释一下
      3、在1没有结果的情况下,希望大家能够提供一些已知的活常用的字体的名字,如上面提到的“Roman”.
      谢谢

      cxt回的

      可以参考:
      » Symbian OS v9.1 » Symbian OS guide » Graphics » Using Graphics Device Interface » Using Fonts » How to select a font


      Symbian OS v9.1 » Symbian OS guide » Graphics » Using Graphics Device Interface » Using Fonts » How to use typefaces

      选择一个字体并使用。
      欢迎访问www.devdiv.net

      向beover1984学习,向huwell学习,向所有开发Symbian者学习

      red_shi
    5. #3
      Super ContributorTurboC's Avatar
      Join Date
      Jul 2008
      Posts
      1,201
       看样子是我没有说清楚, 再说明一下:
      关于SDK中TFontSpec(const TDesC &aTypefaceName, TInt aHeight)的两个参数,是这样说的:
      aTypefaceName :The name of the typeface (e.g. "Roman"). 
      aHeight :The height of the typeface, in twips. 
      这里有几个问题:
      1、怎么找到aTypefaceName的列表呢?好尝试各字体的显示效果,然后加以选择。SDK中没有找到,或者我找法有问题。。。
      2、关于twips这个单位,一直没有概念,大家能够帮忙解释一下
      3、在1没有结果的情况下,希望大家能够提供一些已知的活常用的字体的名字,如上面提到的“Roman”.
      谢谢
      TurboC
      珍惜每一次机会
    6. #2
      Forum Nokia Championred_shi's Avatar
      Join Date
      Nov 2005
      Posts
      1,904
      Quote Originally Posted by TurboC View Post
      请问在S60 3rd中怎么设置字体类型与字体大小:
      例如 字体类型: 宋体/隶书/华文行楷
      字体大小: 10/12/14/16/五号/小五/
      这是我的取字体方式
      if( fontType == FUI_FONT_TYPE_LARGE )
      font = CEikonEnv::Static()->TitleFont();
      else if( fontType == FUI_FONT_TYPE_SMALL )
      font = CEikonEnv::Static()->DenseFont();
      else
      font = CEikonEnv::Static()->NormalFont();*

      TInt m_nFontStyle = EFontStyle_Title;
      switch (m_nFontStyle)
      {
      case EFontStyle_Normal:
      {
      #ifdef __SERIES60_3X__
      // TFontSpec oFontSpec(_L("Sans MT 936_S60"), 100);
      TFontSpec oFontSpec;
      oFontSpec = LatinBold13()->FontSpecInTwips();
      #else
      TFontSpec oFontSpec(_L("CombinedChinesePlain12"), 300);
      #endif
      CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips(font, oFontSpec);
      }
      break;
      case EFontStyle_Title:
      {
      #ifdef __SERIES60_3X__
      // TFontSpec oFontSpec(_L("Sans MT 936_S60"), 130);
      TFontSpec oFontSpec;
      oFontSpec = LatinBold16()->FontSpecInTwips();
      #else
      TFontSpec oFontSpec(_L("CombinedChinesePlain12"), 300);
      #endif
      CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips(font, oFontSpec);
      }
      break;
      default:
      break;
      }

      我这样设置
      aGC.UseFont( font );

      PS:都是系统字体
      欢迎访问www.devdiv.net

      向beover1984学习,向huwell学习,向所有开发Symbian者学习

      red_shi
    7. #1
      Super ContributorTurboC's Avatar
      Join Date
      Jul 2008
      Posts
      1,201
       请问在S60 3rd中怎么设置字体类型与字体大小:
      例如 字体类型: 宋体/隶书/华文行楷
      字体大小: 10/12/14/16/五号/小五/
      TurboC
  • 相关阅读:
    Javascript构造函数的继承
    什么数据库能抗住《王者荣耀》的1亿DAU?
    支持微信支付亿级请求的TBase数据库大揭秘
    我在MySQL的那些年(一)
    谁是银行核心数据库的破局者?
    X侦探所事件薄 | 一次内存溢出之谜
    腾讯云数据库新生代产品获国家级认证
    POJ 2594 传递闭包的最小路径覆盖
    POJ 1719 二分图最大匹配(记录路径)
    HDU 1533 KM算法(权值最小的最佳匹配)
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1870086.html
Copyright © 2011-2022 走看看