用户操作
[即时聊天] [发私信] [加为好友]
FanyID:fandongwei
3617次访问,排名2万外好友0人,关注者0
fandongwei的文章
原创 7 篇
翻译 0 篇
转载 1 篇
评论 2 篇
最近评论
ZhangMing :这个帖子好,我编写程序时,由于用map 会编译很久,这一次还出现了栈空间overload,就是这个帖子解决我的问题,太感谢你了
网友:不错!支持!
文章分类
收藏
    相册
    me
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 保存、读取CFont到文件的解决方案收藏

    新一篇: 使用CFontDialog,CFont,COLORREF改变CRichEdit的字体及颜色 | 旧一篇: 动态创建二维数组及delete

    1.首先,要用到两个转换函数。是我在网上搜到的首位仁兄写的 ,我直接拿来用了
    void StringToLogfont(CString   &s_logfont,LOGFONT   &lf)
    {
     sscanf(   s_logfont,
      "%ld,%ld,%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,%u,%u,%s",
      &lf.lfHeight,&lf.lfWidth,&lf.lfEscapement,&lf.lfOrientation,&lf.lfWeight,
      &lf.lfItalic,&lf.lfUnderline,&lf.lfStrikeOut,&lf.lfCharSet,
      &lf.lfOutPrecision,&lf.lfClipPrecision,&lf.lfQuality,&lf.lfPitchAndFamily,
      lf.lfFaceName);
    }

    void   LogfontToString(LOGFONT   &lf,CString   &s_logfont)
    {
     s_logfont.Format(
      "%ld,%ld,%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,%u,%u,%s",
      lf.lfHeight,lf.lfWidth,lf.lfEscapement,lf.lfOrientation,lf.lfWeight,
      lf.lfItalic,lf.lfUnderline,lf.lfStrikeOut,lf.lfCharSet,
      lf.lfOutPrecision,lf.lfClipPrecision,lf.lfQuality,lf.lfPitchAndFamily,
      lf.lfFaceName);
    }

    2.保存字体信息到文件
    {//保存字体信息
      LOGFONT lf;
      m_Font.GetLogFont(&lf);//m_Font是我定义的一个CFont变量
      CString str;
      LogfontToString(lf, str);//CFont->LOGFONT->CString
      int strLen = str.GetLength();
      file.Write(& strLen,  sizeof(int));//file是待写入的文件
      file.Write(str,    strLen);
     }

    3.从文件读取字体信息(该字体在文件中按步骤2保存)
    {//载入字体信息
       int strLen;  
    //读取我在文件中保存的CFont对象的长度(该对象已经被转为CString)
       file.Read(& strLen,    sizeof(int));//file是待读取的文件

       char * pBuf = new char[strLen + 1];
       file.Read(pBuf, strLen);
       pBuf[strLen] = '\0';
       CString str(pBuf);
       delete [] pBuf;
       LOGFONT lf;
       StringToLogfont(str, lf);//CString->LOGFONT->CFont
       m_Font.CreateFontIndirect(&lf);
      }

    发表于 @ 2007年04月11日 00:50:00|评论(loading...)|编辑

    新一篇: 使用CFontDialog,CFont,COLORREF改变CRichEdit的字体及颜色 | 旧一篇: 动态创建二维数组及delete

    评论

    #网友 发表于2007-04-11 02:20:02  IP: 222.182.31.*
    不错!支持!
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © Fany