Change default dialog font

.

Sometimes it is desirable to change the default font specified in dialog templates (usually "MS Sans Serif", 8 pts.) at runtime (dynamically). For example, you may want to increase the font size to make it more readable under higher screen resolutions. MFC library contains a class CDialogTemplate, that serves exactly this purpose, but MS has not bothered to include its description in standard MFC reference. This is how you can use this class in your code:

1. place the following string somewhere in your "stdafx.h" file:

#include <afxpriv.h>

2. override DoModal() function in your dialog class:

int CSimpleDialog::DoModal() 
{
   CDialogTemplate dlt;
   int             nResult;

   // load dialog template
   if (!dlt.Load(MAKEINTRESOURCE(CSimpleDialog::IDD))) return -1;

   // set your own font, for example "Arial", 10 pts. 
   dlt.SetFont("Arial", 10);
	
   // get pointer to the modified dialog template
   LPSTR pdata = (LPSTR)GlobalLock(dlt.m_hTemplate);
	
   // let MFC know that you are using your own template
   m_lpszTemplateName = NULL;
   InitModalIndirect(pdata);

   // display dialog box
   nResult = CDialog::DoModal();

   // unlock memory object
   GlobalUnlock(dlt.m_hTemplate);

   return nResult;	
}

It may be reasonable to choose a font for your dialog box according to user-specified schemes (those in Control Panel / Display / Appearance). Unfortunately I was unable to find any simple ways to get font settings for the dialog boxes. A possible alternative is to use font settings for icon titles and some related controls (like tree and list controls), that can be retrieved by SystemParametersInfo() function. Here is a simple procedure that returns the face name and the size in points for this font:


void GetSystemIconFont(CString& strFontName,int& nPointSize)
{
   LOGFONT lf;

   // get LOGFONT structure for the icon font
   SystemParametersInfo(SPI_GETICONTITLELOGFONT,sizeof(LOGFONT),&lf,0);
	
   // getting number of pixels per logical inch
   // along the display height
   HDC hDC    = ::GetDC(NULL);
   int nLPixY = GetDeviceCaps(hDC, LOGPIXELSY);
   ::ReleaseDC(NULL,hDC);

   // copy font parameters
   nPointSize  = -MulDiv(lf.lfHeight,72,nLPixY);
   strFontName = lf.lfFaceName;
}

Date Last Updated: April 3, 1999



Comments

  • ghd es el pináculo absoluto de peluquería

    Posted by qmzryg040 on 07/17/2013 10:37pm

    La ciudad industrial del siglo XIX y la construcción de puertos, el rápido desarrollo económico, la convierten en la segunda mayor ciudad del país, Aarhus es una ciudad comercial Jutlandia, Noruega y Dinamarca también se conectan otros medios de transporte de la ciudad hub.Clean y hermosa ciudad de Aarhus, el paisaje rural de Europa, El edificio formado número de único e innovador bygninger.fordi diseño de su ubicación geográfica y los residentes locales entusiastas culture.Aarhus amor siempre ha sido el centro cultural de Jylland.Vores línea planchas ghd para la venta, la cerámica lineal, muy bueno para proteger tu cabello se ve muy buena resistencia al calor. Rápidamente se calienta, en el transcurso de 2-3 minutos para alcanzar la temperatura deseada. Voltaje seguro, fácil de usar que en cualquier país. La plancha de pelo ghd es el más barato. Tenemos una amplia gama de productos y colores. Si te gusta, por lo que comprar lo correcto. [url=http://ghd-espa-a.manifo.com/]planchas ghd baratas[/url] A planchas ghd es uno de los alisadores de pelo más avanzados tecnológicamente en el mercado, pero eso no quiere decir que es difícil de usar ofertas plancha GHD. Sólo quiere decir que es un muy buen alisadores! Por ejemplo. es una ghd sólo 20 segundos para calentar a la temperatura óptima, y el termostato digital asegura la temperatura se ajusta hasta 5 veces por segundo, por lo que su ghd nunca pierden calor o overopheder.Det significa que una ghd no sólo es fácil de utilizar - sino que también proporciona un resultado perfecto cada vez - incluyendo también a causa de las placas flexibles, asegurando que usted no hace "crack" en el pelo cuando suaviza, rizos o hacer el movimiento en håret.Desuden es una ghd diseñado para ser tan suave como sea posible por el cabello, entre otros utilizando el llamado teknologi.Køber iones negativos que una ghd planchas baratas, usted puede estar seguro de que usted ha hecho una inversión que nunca se arrepentirá. [url=http://planchas-ghd.manifo.com/ ]Comprar GHD Planchas[/url] Si no puede determinar el modelo que usted quiere comprar GHD, voy a dar las características de cada modelo, y para tratar de resolver algunos de los problemas también se explica sobre el cuidado del cabello, tales como el uso frecuente de secadores, rizadores, tablero muy socavarlo! Por último, voy a contar mi experiencia personal, he utilizado y funcionar a darle una idea general de bord.Faktum es que el cuidado de la marca GHD y el pelo y otros artículos aparición causó una revolución en el mercado, si apoyamos dieron a esta celebridad, Katy Perry (quien es la imagen de la marca), si usted ve la cooperación (serie apareció en los créditos procesiones, fotos, etc), GHD barato, no tiene una rara personal entre la deficiencia de la hormona del crecimiento. En resumen, la placa de tiempo

    Reply
  • what’s the various between clarisonic mia and mia2

    Posted by iouwanzi on 06/06/2013 12:48pm

    [url=http://www.miaclarisonicaustralia.org/]clarisonic mia australia[/url] Les producteurs primaires suivantes commencé pour sa bonne qualité merveilleuse de votre sèche-cheveux et fer à lisser est aujourd’hui célèbre également la distinction entre les femmes qui parfois vous avez besoin pour redresser votre chevelure afin d’éliminer ces types de problèmes ghd fer luxe Violet, à son tour, n’est pas un peu ne serait tout simplement pas seulement en possession du logiciel. un temps très long sur les compétences à l’aide de modèle MK4 GHD coiffer les cheveux bouclés, qui habituellement aurait certainement visiteurs parfaites un partage vraiment Thru la douceur, verrouille par exemple signifiait redresser ce n’est, en général, les lois de tension semi-automatique ou entièrement automatique et les règlements, vous pouvez acheter un bon cheveu sauvage style avec vous partout dans le monde grâce à une Botheration vitale tout autour. meilleurs d’entre eux à travers un endroit spécifique pour redresser redresseur GHD MK4 cheveux bouclés pourraient l’être. problème en effet, le fait qui se produit à l’aide d’un opérateur capable dvd, plus de points, le type choisi des méthodes simples pour vous aider à contrôler l’application correcte et [url=http://www.australiaclarisonic.com/clarisonic-pro]clarisonic pro[/url] Ce redressement en termes de fer relèvent de 4 modèles. Pour que vous choisissiez telle qu’énoncée par ceux type de cheveux bouclés, mais aussi les coiffures que vous souhaitez atteindre. Par le biais de processus un peu, c’est très simple aussi obtenir de belles boucles. Et même le type est parfait pour le lissage de la frange ainsi que pour les individus.Espagne, GHD annonce une promotion très utile. Dans les cas où la plupart des gens portent votre propre fer plat âgé dans un point de vente de cette marque, une certainement se verront faible coût à l’achat d’un fer à lisser ghd pas cher. Il est généralement valable jusqu’au 6 mai 2011. En fait, vous ne pouvez généralement décider de votre propre blog officiel de fer plat. Certaines personnes offrent le monde entier !Comme que je quitterai les gens avec la finale de vente spot qui est vraiment très beau. Une Cendrillon moderne important ! [url=http://www.miaclarisonicaustralia.org/clarisonic-mia]clarisonic mia[/url] Boucles tombantes ou même les cheveux, le chanteur révélé comme étant une femme fatale dans nuits ainsi que la durée de la nuit ! Je suis un nouvel admirateur concernant les photos noir et blancs ainsi que très certainement l’obscurité des jeux parfois observées.Donc, quand je trouve ce genre d’événement promotionnel préférence efficace et puis j’aime surtout toutes ces se sent compliquée plus élégant ! Et Hanaa Ben Abdesslem voyant qu’il y a toujours dans quelle Katy apporte également les tampons en caoutchouc néanmoins sur une tenue de temps assez longue journée !

    Reply
  • Thank You

    Posted by Oliver M. on 05/11/2005 05:55am

    That was exactly what I was looking for; thank you for sharing your knowledge!

    Reply
  • Get font set in Control Panel/Display/Appearance

    Posted by afilipovik on 04/28/2004 10:51am

    Use SystemParametersInfo function with uiAction = SPI_GETNONCLIENTMETRICS. Fonts are available from NONCLIENTMETRICS structure members.

    Reply
  • Using ActiveX controls

    Posted by Legacy on 07/24/2003 12:00am

    Originally posted by: Jesse Krebs

    This is an excellent example. But it fails to work if the dialog has an Active X control on it. See MSDN Knowledge Base article Q231591, "HOWTO: Use a Dialog Template to Create a MFC Dialog with an ActiveX Control."

    Reply
  • How can i add all available font in a combo box

    Posted by Legacy on 02/19/2003 12:00am

    Originally posted by: Ravi Sharma

    How can i add all available fonts in a combo box as in a Combo box in cFontDialog Class,i want ot create my own dialog box where i need to use this COMBO box,

    Reply
  • Combo Boxes empty (they really are!!)

    Posted by Legacy on 01/28/2003 12:00am

    Originally posted by: moodboom

    I agree with Maria's post

    http://www.codeguru.com/mfc/comments/24092.shtml

    This is a great class and solves all my problems, except that the combo boxes are empty. I am going to try cutting and pasting from CDialog::DoModal() to solve the problem... anyone else go through this yet?

    Reply
  • How to change font for a particular control

    Posted by Legacy on 01/25/2003 12:00am

    Originally posted by: Mohan Prakash

    I wrote the application to change the font for a particular controls in a dialog box. It is working under windows 98, but not working under window 2000 professional.
    The code i wrote


    LOGFONT lf;
    memset(&lf,0,sizeof(LOGFONT));
    lstrcpy(lf.lfFaceName,"Arial");

    lf.lfWeight = 1;

    lf.lfHeight = 12;

    //create a font with logfont structure
    CFont myfont;
    myfont.CreatePointFontIndirect(&lf);

    dc.SelectObject(&myfont);


    //Find all the child controls in this dialog
    CWnd *m_pDlgControls = GetWindow(GW_CHILD);

    while(m_pDlgControls)
    {
    UINT nObjectId = m_pDlgControls->GetDlgCtrlID();
    int temp = strLabel.LoadString(nObjectId);
    switch(nObjectId)
    {
    case ID_SOME_CONTROLS // some controls
    m_pDlgControls->SetFont(&myfont);
    m_pDlgControls->SetWindowText(strLabel);
    break;
    }
    m_pDlgControls = m_pDlgControls->GetWindow(GW_HWNDNEXT);
    }


    Reply
  • how to makedifferent font sizes...

    Posted by Legacy on 10/04/2002 12:00am

    Originally posted by: Kanat

    sir/madam

    I write an SDI application which calls Access database
    I want some "statics" be in large size and some in small
    and print this current page wich shows only one personal data.
    Is it possible? If it is then could you help with that

    thank you furthermore.

    Reply
  • How about this method...

    Posted by Legacy on 09/06/2002 12:00am

    Originally posted by: Mak

    I am a newbie, I am not sure this method is better, please comment.

    I used to put following codes into my OnInitDialog() to change the dialog font.

    CWnd *pWnd = GetWindow(GW_CHILD) ;

    while ( pWnd )
    {
    pWnd->SetFont(&m_MyFont) ;
    pWnd = pWnd->GetNextWindow() ;
    }

    Reply
  • Loading, Please Wait ...

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Mobile is introducing sweeping changes throughout your workplace. As a senior stakeholder driving mobile initiatives in your organization, you may be lost in a sea of technologies and claims from vendors promising rapid delivery of applications to your employees, customers, and partners. To help explain some of the topics you will need to be aware of, and to separate the must-haves from the nice-to-haves, this reference guide can help you with applying a mobile strategy in the context of application …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds