TextGetSize 関数
この関数は、TextSetFont関数で設定されているチャート上に出力されたテキストの幅と高さを取得します。
データ型と構成・戻り値
bool TextGetSize(①, ②, ③);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
考えらえる発生するエラーとして次のものがあります。
ERR_INTERNAL_ERROR (4001)
オペレーティングシステムエラー。
引数 [3]
TextGetSize関数は 3個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | text | const string | - | - | 幅と長さを取得する文字列。 |
② | width | uint& | pixel | - | 引数①の文字列の幅を取得する変数。 |
③ | height | uint& | 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削除時消すための処理
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)