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; //
    加上这句,解决内存泄漏 

     

     

  • 相关阅读:
    Oc中UIKit框架的继承结构
    iOS中的事件传递和响应者链
    音频视频,音乐,录音参考资料
    对象序列化(对对象的归档NSKeyedArchiver、接档NSKeyedUnarchiver)的理解
    iOS--UI篇——UIToolbar的简单使用
    iOS--内购的使用方法
    协调-分布式锁
    协调-协调架构原理
    协调-分布式配置
    队列-生产者消费者模式
  • 原文地址:https://www.cnblogs.com/time-is-life/p/7747919.html
Copyright © 2011-2022 走看看