描画テキストの幅と高さを取得 TextGetSize 関数

関数

オブジェクト関数

TextGetSize 関数

この関数は、TextSetFont関数で設定されているチャート上に出力されたテキストの幅と高さを取得します。

データ型と構成・戻り値

bool TextGetSize(①, ②, ③);

戻り値は、処理が成功した場合は true、それ以外は falseが返されます。

考えらえる発生するエラーとして次のものがあります。

ERR_INTERNAL_ERROR (4001)
 オペレーティングシステムエラー。

引数 [3]

TextGetSize関数は 3個の引数で構成されます。


引数名データ型単位初期値説明
textconst string幅と長さを取得する文字列。
widthuint&pixel引数①の文字列の幅を取得する変数。
heightuint&pixel引数①の文字列の高さを取得する変数。

使用例

TextGetSize関数による表示テキストの幅と高さの取得

チャート上にテキストオブジェクトを設置した時のテキストの幅と高さを TextGetSize関数で取得します。

コード

// TextGetSize関数による表示テキストの幅と高さの取得
#property strict

#define IMG_WIDTH  150               // 描画 幅  pixel
#define IMG_HEIGHT 150               // 描画 高さpixel

uint ExtImg[IMG_WIDTH * IMG_HEIGHT]; // 描画 配列(バッファ)
int i=0;
string text = "テストです";

void OnInit() {
   ObjectsDeleteAll();
   ArrayFill(ExtImg, 0, IMG_WIDTH * IMG_HEIGHT, 0);
   ObjectCreate(0, "TEST", OBJ_BITMAP_LABEL, 0, 0, 0);
   ObjectSetString(0, "TEST", OBJPROP_BMPFILE, "::IMG"); 

   ArrayFill(ExtImg, 0, IMG_WIDTH * IMG_HEIGHT , 0);
   
   TextSetFont("MS Pゴシック", 25, FONT_UNDERLINE|FW_EXTRABOLD, 0); 
   
   int w, h;
   TextGetSize(text, w, h);
   Print("テキストの幅 ", w, "pixel,高さ ", h, "pixel");
   
   TextOut(text, 30, 65, TA_LEFT|TA_TOP, ExtImg, IMG_WIDTH, IMG_HEIGHT, clrWhite, COLOR_FORMAT_XRGB_NOALPHA);
   
   ResourceCreate("::IMG", ExtImg, IMG_WIDTH, IMG_HEIGHT, 0, 0, IMG_WIDTH, COLOR_FORMAT_XRGB_NOALPHA);
}

void OnDeinit(const int reason) { //終了処理
   ObjectsDeleteAll();            // オブジェクトテキストをEA削除時消すための処理
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果 

タイトルとURLをコピーしました