SOL9 2.0 Class: MessageFont

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * MessageFont.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2008/08/13
#pragma once

#include <sol\Font.h>


namespace SOL {

/**
 * MessageFont class
 */
class MessageFont :public Font {
private:
    LOGFONT lf;

public:
    /**
     * Constructor
     */
    MessageFont()
    :Font() {
        memset(&lf, 0, sizeof(lf));
        getMessageFont(lf);        
    }

public:
    ~MessageFont() {
    }


public:

    Boolean   create(int pointSize) {
        //this -> pointSize = pointSize;

        HDC hdc = GetDC(NULL);
        int height = -MulDiv(pointSize,GetDeviceCaps(hdc,LOGPIXELSY),72);
        ReleaseDC(NULL, hdc);

        lf.lfHeight = height;

        return Font::create(&lf);
    }

public:

    Boolean   create() {
        return Font::create(&lf);
    }

private:
    BOOL getMessageFont(LOGFONT& lf) {
        
        NONCLIENTMETRICS ncm;
        memset(&ncm, 0, sizeof(ncm)); 
        ncm.cbSize = sizeof(ncm); 

        BOOL rc = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0); 
        if (rc) {
            lf = ncm.lfMessageFont; 
        }
        return rc;
    }

public:
    LOGFONT& getLogMessageFont() {
        return lf;
    }
};

}

Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.