⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdiplus_font.cpp

📁 Windows Mobile平台上使用GDI+。GDI+功能很强大
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "stdafx.h"
#include "GdiplusShunt.h"

//----------------------------------------------------------------------------
// FontFamily APIs
//----------------------------------------------------------------------------


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipCreateFontFamilyFromNamePtr)(GDIPCONST WCHAR *name,
                         GpFontCollection *fontCollection,
                         GpFontFamily **FontFamily));
DEFINE_MEMBER(GdipCreateFontFamilyFromName);

GpStatus WINGDIPAPI
GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
                             GpFontCollection *fontCollection,
                             GpFontFamily **FontFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipCreateFontFamilyFromName == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipCreateFontFamilyFromName);
        }
        if ( g_GdipCreateFontFamilyFromName != NULL )
        {
            status = (*g_GdipCreateFontFamilyFromName)(name, fontCollection, FontFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipDeleteFontFamilyPtr)(GpFontFamily *FontFamily));
DEFINE_MEMBER(GdipDeleteFontFamily);

GpStatus WINGDIPAPI
GdipDeleteFontFamily(GpFontFamily *FontFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipDeleteFontFamily == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipDeleteFontFamily);
        }
        if ( g_GdipDeleteFontFamily != NULL )
        {
            status = (*g_GdipDeleteFontFamily)(FontFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipCloneFontFamilyPtr)(GpFontFamily *FontFamily, GpFontFamily **clonedFontFamily));
DEFINE_MEMBER(GdipCloneFontFamily);

GpStatus WINGDIPAPI
GdipCloneFontFamily(GpFontFamily *FontFamily, GpFontFamily **clonedFontFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipCloneFontFamily == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipCloneFontFamily);
        }
        if ( g_GdipCloneFontFamily != NULL )
        {
            status = (*g_GdipCloneFontFamily)(FontFamily, clonedFontFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetGenericFontFamilySansSerifPtr)(GpFontFamily **nativeFamily));
DEFINE_MEMBER(GdipGetGenericFontFamilySansSerif);

GpStatus WINGDIPAPI
GdipGetGenericFontFamilySansSerif(GpFontFamily **nativeFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetGenericFontFamilySansSerif == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetGenericFontFamilySansSerif);
        }
        if ( g_GdipGetGenericFontFamilySansSerif != NULL )
        {
            status = (*g_GdipGetGenericFontFamilySansSerif)(nativeFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetGenericFontFamilySerifPtr)(GpFontFamily **nativeFamily));
DEFINE_MEMBER(GdipGetGenericFontFamilySerif);

GpStatus WINGDIPAPI
GdipGetGenericFontFamilySerif(GpFontFamily **nativeFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetGenericFontFamilySerif == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetGenericFontFamilySerif);
        }
        if ( g_GdipGetGenericFontFamilySerif != NULL )
        {
            status = (*g_GdipGetGenericFontFamilySerif)(nativeFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetGenericFontFamilyMonospacePtr)(GpFontFamily **nativeFamily));
DEFINE_MEMBER(GdipGetGenericFontFamilyMonospace);

GpStatus WINGDIPAPI
GdipGetGenericFontFamilyMonospace(GpFontFamily **nativeFamily)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetGenericFontFamilyMonospace == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetGenericFontFamilyMonospace);
        }
        if ( g_GdipGetGenericFontFamilyMonospace != NULL )
        {
            status = (*g_GdipGetGenericFontFamilyMonospace)(nativeFamily);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetFamilyNamePtr)(
                   GDIPCONST GpFontFamily  *family,
                   LPWSTR name, LANGID language));
DEFINE_MEMBER(GdipGetFamilyName);

GpStatus WINGDIPAPI
GdipGetFamilyName(
    GDIPCONST GpFontFamily  *family,
    LPWSTR name, LANGID language
)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetFamilyName == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetFamilyName);
        }
        if ( g_GdipGetFamilyName != NULL )
        {
            status = (*g_GdipGetFamilyName)(family, name, language);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipIsStyleAvailablePtr)(GDIPCONST GpFontFamily *family, INT style, 
                         BOOL * IsStyleAvailable));
DEFINE_MEMBER(GdipIsStyleAvailable);

GpStatus   WINGDIPAPI
GdipIsStyleAvailable(GDIPCONST GpFontFamily *family, INT style, 
                     BOOL * IsStyleAvailable)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipIsStyleAvailable == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipIsStyleAvailable);
        }
        if ( g_GdipIsStyleAvailable != NULL )
        {
            status = (*g_GdipIsStyleAvailable)(family, style, IsStyleAvailable);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipFontCollectionEnumerablePtr)(
                   GpFontCollection* fontCollection, GpGraphics* graphics, INT * numFound));
DEFINE_MEMBER(GdipFontCollectionEnumerable);

GpStatus WINGDIPAPI
GdipFontCollectionEnumerable(
    GpFontCollection* fontCollection, GpGraphics* graphics, INT * numFound)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipFontCollectionEnumerable == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipFontCollectionEnumerable);
        }
        if ( g_GdipFontCollectionEnumerable != NULL )
        {
            status = (*g_GdipFontCollectionEnumerable)(fontCollection, graphics, numFound);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipFontCollectionEnumeratePtr)(
                   GpFontCollection* fontCollection,
                   INT numSought, GpFontFamily** gpfamilies,
                   INT* numFound, GpGraphics* graphics));
DEFINE_MEMBER(GdipFontCollectionEnumerate);

GpStatus WINGDIPAPI GdipFontCollectionEnumerate(
    GpFontCollection* fontCollection,
    INT             numSought,
    GpFontFamily**   gpfamilies,
    INT*            numFound,
    GpGraphics*     graphics
)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipFontCollectionEnumerate == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipFontCollectionEnumerate);
        }
        if ( g_GdipFontCollectionEnumerate != NULL )
        {
            status = (*g_GdipFontCollectionEnumerate)(fontCollection, numSought, gpfamilies, numFound, graphics);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetEmHeightPtr)(GDIPCONST GpFontFamily *family, INT style, 
                               UINT16 * EmHeight));
DEFINE_MEMBER(GdipGetEmHeight);

GpStatus WINGDIPAPI
GdipGetEmHeight(GDIPCONST GpFontFamily *family, INT style, 
                UINT16 * EmHeight)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetEmHeight == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetEmHeight);
        }
        if ( g_GdipGetEmHeight != NULL )
        {
            status = (*g_GdipGetEmHeight)(family, style, EmHeight);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetCellAscentPtr)(GDIPCONST GpFontFamily *family, INT style,
                                 UINT16 * CellAscent));
DEFINE_MEMBER(GdipGetCellAscent);

GpStatus WINGDIPAPI
GdipGetCellAscent(GDIPCONST GpFontFamily *family, INT style,
                  UINT16 * CellAscent)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetCellAscent == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetCellAscent);
        }
        if ( g_GdipGetCellAscent != NULL )
        {
            status = (*g_GdipGetCellAscent)(family, style, CellAscent);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetCellDescentPtr)(GDIPCONST GpFontFamily *family, INT style, 
                        UINT16 * CellDescent));
DEFINE_MEMBER(GdipGetCellDescent);

GpStatus WINGDIPAPI
GdipGetCellDescent(GDIPCONST GpFontFamily *family, INT style, 
                   UINT16 * CellDescent)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetCellDescent == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetCellDescent);
        }
        if ( g_GdipGetCellDescent != NULL )
        {
            status = (*g_GdipGetCellDescent)(family, style, CellDescent);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipGetLineSpacingPtr)(GDIPCONST GpFontFamily *family, INT style, 
                                  UINT16 * LineSpacing));
DEFINE_MEMBER(GdipGetLineSpacing);

GpStatus WINGDIPAPI
GdipGetLineSpacing(GDIPCONST GpFontFamily *family, INT style, 
                   UINT16 * LineSpacing)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipGetLineSpacing == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipGetLineSpacing);
        }
        if ( g_GdipGetLineSpacing != NULL )
        {
            status = (*g_GdipGetLineSpacing)(family, style, LineSpacing);
        }
    }
    return status;
}


//----------------------------------------------------------------------------
// Font APIs
//----------------------------------------------------------------------------


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipCreateFontFromDCPtr)(HDC hdc, GpFont **font));
DEFINE_MEMBER(GdipCreateFontFromDC);

GpStatus WINGDIPAPI
GdipCreateFontFromDC(HDC hdc, GpFont **font)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipCreateFontFromDC == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipCreateFontFromDC);
        }
        if ( g_GdipCreateFontFromDC != NULL )
        {
            status = (*g_GdipCreateFontFromDC)(hdc, font);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipCreateFontFromLogfontAPtr)(
                   HDC hdc, GDIPCONST LOGFONTA *logfont, GpFont **font));
DEFINE_MEMBER(GdipCreateFontFromLogfontA);

GpStatus WINGDIPAPI
GdipCreateFontFromLogfontA(
    HDC hdc, GDIPCONST LOGFONTA *logfont, GpFont **font)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipCreateFontFromLogfontA == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipCreateFontFromLogfontA);
        }
        if ( g_GdipCreateFontFromLogfontA != NULL )
        {
            status = (*g_GdipCreateFontFromLogfontA)(hdc, logfont, font);
        }
    }
    return status;
}


DEFINE_POINTER(GpStatus (WINGDIPAPI *GdipCreateFontFromLogfontWPtr)(
                   HDC hdc, GDIPCONST LOGFONTW *logfont, GpFont **font));
DEFINE_MEMBER(GdipCreateFontFromLogfontW);

GpStatus WINGDIPAPI
GdipCreateFontFromLogfontW(
    HDC hdc, GDIPCONST LOGFONTW *logfont, GpFont **font)
{
    GpStatus status = GdiplusNotInitialized;
    if ( g_hGdiplusModule != 0 )
    {
        if ( g_GdipCreateFontFromLogfontW == NULL )
        {
            INITIALIZE_MEMBER(g_hGdiplusModule, GdipCreateFontFromLogfontW);
        }
        if ( g_GdipCreateFontFromLogfontW != NULL )
        {
            status = (*g_GdipCreateFontFromLogfontW)(hdc, logfont, font);
        }
    }
    return status;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -