[香車]東上☆あらし☆海美「
コード:
/**
* @details https://dixq.net/forum/viewtopic.php?f=3&t=21612&p=158264#p158264 画像管理のヘッダーファイルを作りたい - ミクプラ(ja)
*/
#include "DxLib.h"
int initDxLib = DxLib_Init();
class TGraphBase {
int m_handle;
TGraphBase() {}
public:
TGraphBase( const char* const fn ) {
m_handle = LoadGraph( fn );
}
const int getHandle() const { return m_handle; }
};
TGraphBase* Handle00 = new TGraphBase("Data/KabeTex.png");
#define TEST_STR_NUM 2
#define TEST_MAX_WIDTH 300
#define TEST_STR_SIZE 32
int WINAPI
WinMain(HINSTANCE, HINSTANCE, LPSTR, int) try
{
//ChangeWindowMode(TRUE);
if (initDxLib == -1)return 0;
SetDrawScreen(DX_SCREEN_BACK);
//TGraphBase* Handle00 = new TGraphBase("Data/KabeTex.png");
int fontHandle = 0;
fontHandle = CreateFontToHandle("Meiryo UI", TEST_STR_SIZE, 1, DX_FONTTYPE_ANTIALIASING); //フォントは適当
const char* testStr = "アイウ 漢字 XYZ setting gpyq";
int strWidth = 0;
strWidth = GetDrawStringWidthToHandle(testStr, -1, fontHandle); //負の値を渡して文字全体の長さを取得
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 ) {
ClearDrawScreen();
if (TEST_MAX_WIDTH < strWidth) {
//幅が定数より大きい場合圧縮して描画
//引数の座標は左上、右上、右下、左下の順
DrawModiStringToHandle(
0, 0,
TEST_MAX_WIDTH, 0,
TEST_MAX_WIDTH, TEST_STR_SIZE*1.5,
0, TEST_STR_SIZE,
GetColor(255, 255, 255), fontHandle, GetColor(128, 128, 128), 0, testStr
);
} else {
//定数以下の場合は普通に描画
DrawStringToHandle(0, 0, testStr, GetColor(255, 255, 255), fontHandle);
}
DrawGraph(0, 0, Handle00->getHandle(), TRUE);
ScreenFlip();
}
DxLib_End(); //終了
return EXIT_SUCCESS; // ソフトの終了
}
catch (...)
{
return EXIT_FAILURE;
}
// end.
」