Click here to Skip to main content
11,704,107 members (58,895 online)
Click here to Skip to main content

How to set a font for all child windows

, 7 Dec 1999 78.4K 1.4K 21
Rate this:
Please Sign up or sign in to vote.
A technique for changing the font for all child windows in your main application
  • Download demo project - 15 Kb
  • <!-- Article Starts -->

    This article shows how to change the font for all child windows using only one line with a callback function.

    The idea is to create a callback function that is passed to Win32 API function ::EnumChildWindows(). Somewhere in the application, global CFont object is created. Pointer to this object is passed as a third argument in EnumChildWindows(). This argument is passed to a callback function together with a handle to a child window. Using these 2 arguments, the function changes the font for the child window.

    Using this technique, it is very easy to:

    • Change the font for main frame window, its child views and a status bar from CMainFrame::OnCreate().
    • Change the font for all dialog controls from OnInitDialog().

    The Callback function looks like this:

    // lParam is a pointer to CFont object
    BOOL __stdcall SetChildFont(HWND hwnd, LPARAM lparam)
    {
       CFont *pFont = (CFont*)lparam;
       CWnd *pWnd = CWnd::FromHandle(hwnd);
       pWnd->SetFont(pFont);
       return TRUE;
    }
    

    This callback function is used from OnCreate() or OnInitDialog() in the following way:

    ...
    // g_Font is an object of type CFont or derived from CFont
    EnumChildWindows(m_hWnd, ::SetChildFont, &g_Font);
    ...
    

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here

    Share

    About the Author

    Zoran M. Todorovic
    Web Developer SCA d.o.o.
    Serbia Serbia
    I am a cofounder of SCA Software, company that specializes in software for process control, visualization and communication. Programming for the last 10 years in C++, Delphi. Visual C++ for the last 6 years. Degree in Electronics Engineering and Telecommunications.

    You may also be interested in...

    Comments and Discussions

     
    QuestionCFrameWnd font? Pin
    Spitfed25-Sep-06 4:17
    memberSpitfed25-Sep-06 4:17 
    Questionhow to change font size? Pin
    HuaHsin27-Apr-04 18:15
    memberHuaHsin27-Apr-04 18:15 
    AnswerRe: how to change font size? Pin
    ianw.moore26-Jul-04 23:03
    memberianw.moore26-Jul-04 23:03 
    Questionhow to set to the particular control? Pin
    HuaHsin27-Apr-04 17:00
    memberHuaHsin27-Apr-04 17:00 
    GeneralMemory problems fixed, but now more problems Pin
    Jason24-Oct-00 8:34
    sussJason24-Oct-00 8:34 
    GeneralMemory leaks Pin
    Jason6-Oct-00 9:03
    sussJason6-Oct-00 9:03 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    | Advertise | Privacy | Terms of Use | Mobile
    Web03 | 2.8.150819.1 | Last Updated 8 Dec 1999
    Article Copyright 1999 by Zoran M. Todorovic
    Everything else Copyright © CodeProject, 1999-2015
    Layout: fixed | fluid