📄 gdiplus_font.cpp
字号:
#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 + -