#include <DxLib.h>
class CFont
{
TCHAR* m_FileName; //フォントファイル
TCHAR* m_FontName; //書体名
int m_x, m_y; //表示位置
int m_size; //大きさ
public:
//コンストラクタ
CFont(TCHAR* FileName, TCHAR* FontName, int x, int y, int size);
void DrawFont(TCHAR* str, int col);
void DeleteFont();
};
#endif/*DEF_FONT_H_*/
//Font.cpp
#include "Font.h"
//コンストラクタ
CFont::CFont(TCHAR* FileName, TCHAR* FontName, int x, int y, int size)
{
m_FileName = FileName;
m_FontName = FontName;
m_x = x;
m_y = y;
m_size = size;
}
//文字の描画
void CFont::DrawFont(TCHAR* str,int col)
{
//フォントファイル名を読み込む
AddFontResource(m_FileName);
//指定フォントに変更
ChangeFont(m_FontName);
//指定フォントサイズに変更
SetFontSize(m_size);
//指定したフォントで文字列を描画
DrawString(m_x, m_y,str, col);
}
//指定フォントの開放
void CFont::DeleteFont()
{
if( RemoveFontResource(m_FileName) )
PostMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
}
以下使い方:
//main.cpp
#include <DxLib.h>
#include "Font.h"
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd)
{
//ウィンドウモードへ変更
ChangeWindowMode(true);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
return -1; // エラーが起きたら直ちに終了
//文字の大きさを設定(36)
SetFontSize(36);
//文字列を描画
DrawString(10, 200, "この文字はMS ゴシックです。", GetColor(255, 255, 255));
/// ********** フォントのロード **********
CFont font("azuki.ttf","あずきフォント", 10, 240, 36);
font.DrawFont("この文字はあずきフォントです。", GetColor(255,255,255));
//キーの入力待ち
WaitKey();
//フォントの解放
font.DeleteFont();
// DXライブラリ使用の終了処理
DxLib_End();
return 0;
}