Now: Tutorial for Web and Software Design > Programming > c > Programming Content
> CFont Sample in MFC [Bookmark it]
CFont Sample in MFC
    CFont class encapsulates the functionalities needed to manipulate the Fonts in Windows programming. A font can be created in 4 ways with a CFont class using CreateFont, CreateFontIndirect, CreatePointFont, or CreatePointFontIndirect functions. This CFont Samples page tries to give a piece of sample code for all of the above functions.

CFont Sample for using CFont :: CreateFont
:
   The following CFont sample illustrates how to create a font using CreateFont function of the CFont class.
 

   CClientDC dc(this);
   CFont l_font;
   l_font.CreateFont(14, 0, 0, 0, FW_NORMAL,
   FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,   DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, "Times New Roman");

   CFont* l_old_font = dc.SelectObject(&l_font); dc.TextOut(50, 50, "Hello World");    
   dc.SelectObject(l_old_font);
   // Delete the font object. 
   l_font.DeleteObject(); 


   In the above CFont Sample, the CreateFont function uses all default parameters (either 0 or Default constants), except for the height parameter. If CreateFont is called as above, the MFC framework will select the best fit parameters by itself and create a font accordingly. 

CFont Sample for using CFont :: CreateFontIndirect: 
   This part of CFont sample illustrates the usage of CreateFontIndirect. 


   CClientDC dc(this);
   CFont l_font;
   LOGFONT lf;
   lf.lfHeight = 12;
   strcpy(lf.lfFaceName, "Arial"); // Need a face name "Arial". 
   l_font.CreateFontIndirect(&lf); 
   CFont* l_old_font = dc.SelectObject(&l_font); 
   dc.TextOut(50, 50, "Hello World"); 
   dc.SelectObject(l_old_font); 
   // Delete the font object.
   l_font.DeleteObject(); 


The LOGFONT is a structure with all members required for the Font object. 

CFont Sample for using CFont :: CreatePointFont:
 This part of the sample illustrates the use of CreatePointFont for creating a font.


   CClientDC dc(this); 
   CFont l_font; 
   l_font.CreatePointFont(140,"Times New Roman"); 
   CFont* l_old_font = dc.SelectObject(&l_font);
   dc.TextOut(50, 50, "Hello World"); 
   dc.SelectObject(l_old_font); 
   // Delete the font object. 
   l_font.DeleteObject(); 


The first parameter of the CreatePointFont function is the height of the Font in tenths of a point. The return value of this function is non-zero value if successful. 

CFont Sample for using CFont :: CreatePointFontIndirect:
 


   CClientDC dc(this); 
   CFont l_font; 
   LOGFONT lf;
   lf.lfHeight = 120; 
   strcpy(lf.lfFaceName, "Arial"); // Need a face name "Arial". 
   l_font.CreatePointFontIndirect(&lf); 
   CFont* l_old_font = dc.SelectObject(&l_font); 
   dc.TextOut(50, 60, "Hello World"); 
   dc.SelectObject(l_old_font); 
   //  Delete the font object. 
   l_font.DeleteObject(); 


   Usually it is better to use either CreatePointFont or CreatePointFontIndirect functions as they reduce the head-ache of thinking about the width, weight and such parameters.
   Also, in the above CFont sample the l_font is deleted in the end. It is a good programming practice as advised by Windows Programming manuals to delete the Objects after removing them from the current device context. 

[Bookmark][Print] [Close][To Top]
  • Prev Article-Programming:

  • Next Article-Programming:
  • Related Materias
    Passing an Array to and fr
    Using the For匛ach Stateme
    Using Office applications 
    Visual Basic Explorer - Tu
    Visual Basic Explorer - Tu
    VB Tutorials - SQL for Beg
    VB Tutorials - SQL for Beg
    Visual Basic Explorer- Gam
    Visual Basic Explorer- Sou
    Visual Basic Explorer- Gam
    Topics
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Graphic Design Tutorial
     

    Coreldraw Tutorial

      Illustrator Tutorial
      3D Graphics Articles
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial&Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial&Articles
     

    XML Style Tutorial

      AJAX Tutorial
      XML Mobile
    Flash Tutorial&Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial&Articles
     

    Linux Tutorial

      Symbian Tutorial
      MacOS Tutorial