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

     

     

  • 相关阅读:
    Django实现组合搜索
    KindEditor编辑器
    Python 使用Pillow模块生成验证码
    jenkins插件之如何优雅的生成版本号
    maven配置文件详解
    Django文件上传三种方式以及简单预览功能
    jsPlumb 学习笔记
    通用的业务编码规则设计实现[转:http://www.cnblogs.com/xqin/p/3708367.html]
    图解SQL的各种连接join[转]
    Redis配制说明
  • 原文地址:https://www.cnblogs.com/time-is-life/p/7747919.html
Copyright © 2011-2022 走看看