zoukankan      html  css  js  c++  java
  • CreateFont函数为什么改变不了字体?该怎么解决

    CreateFont函数为什么改变不了字体?
    CFont   *   f;   
              f   =   new   CFont;   
              f-> CreateFont(30,   //   nHeight   
              0,   //   nWidth   
              0,   //   nEscapement   
              0,   //   nOrientation   
              FW_BOLD,   //   nWeight   
              FALSE,   //   bItalic   
              FALSE,   //   bUnderline   
              0,   //   cStrikeOut   
              ANSI_CHARSET,   //   nCharSet   
              OUT_DEFAULT_PRECIS,   //   nOutPrecision   
              CLIP_DEFAULT_PRECIS,   //   nClipPrecision   
              DEFAULT_QUALITY,   //   nQuality   
              DEFAULT_PITCH   |   FF_SWISS,   //   nPitchAndFamily   
              _T( "Arial "));   //   lpszFac   
              GetDlgItem(IDC_STATIC1)-> SetFont(f); 

    为什么我把_T( "Arial "));   ,改为"宋体""楷体""黑体""隶书",都没有任何的变化呢?应该如何改变字体呢?

    [解决方法]

     

    不一定要定义成类变量: 

    CFont * f; 
    f = new CFont; //
    你的程序,内存泄漏了,就这句 
    f-> CreateFont(...); 
    GetDlgItem(IDC_STATIC1)-> SetFont(f); 
    f.Detch(); 
     //
    加上这句,让CFont与字体句柄(HFONT)分离,因为句柄已被GetDlgItem(IDC_STATIC1)使用了,要防止CFont析构HFONT 
    delete f; //
    加上这句,解决内存泄漏 

     

     

  • 相关阅读:
    pip解决超时问题(timeout)
    Docker commit使用
    Docker基本命令汇总
    python redis模块详解
    python异步编程之asyncio(百万并发)
    VideoJS 与 Framework7 中 fastclick 冲突问题
    Linux 下解决安装多个node冲突的问题(重新安装node)
    git push multiple repo
    webpack import windows case sensitive
    一键切图 PS 动作 【收藏】
  • 原文地址:https://www.cnblogs.com/time-is-life/p/7747919.html
Copyright © 2011-2022 走看看