トップ  >  MQL4リファレンス  >  オブジェクト関数  >  TextSetFont
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
TextSetFont


TextSetFont


描画メソッドで使用して表示されるテキストのフォント設定を行います。
デフォルトではArialフォントのサイズ-120(12.0pt)が使用されます。

関数書式:
bool  TextSetFont(
   const string  name,            // フォント名
   int           size,            // フォントサイズ
   uint          flags=0,         // フラグ
   int           orientation=0    // テキスト傾斜角度
   );



■引数
引数名 初期値 I/O 詳細
name - In フォント名。
システム内のフォント名、
またはフォントを含むリソース名
またはディスク上のフォントファイルパス
を指定します。
size - In フォントサイズ。
フォントサイズは正数または負数で設定します。
正数の場合は、オペレーティングシステムのフォントサイズ設定に依存しません。
負数の場合は、オペレーティングシステムのフォントサイズ設定(standardまたはlarge)に依存し、値の分解能は[0.1pt]で設定されます。

モードの違いについての詳細は備考を参照して下さい。
flags 0 In フラグ
orientation 0 In テキストの傾き[分解能:0.1度]。


■戻り値
フォントがインストールされている場合はtrueを返します。
それ以外はfalseを返します。
エラーコードの確認はGetLastError()関数を使用します。



■備考
フォント名に"::"が使用されている場合、フォントはex4リソースからダウンロードします。
フォント名を拡張子で指定した場合は、フォントはファイル(パスの先頭に"\"(プログラム上は"\\")がある場合はMQL4ディレクトリの相対パスから検索されます。)からダウンロードします。

それ以外の場合はTextSetFont()関数を呼び出しているex4ファイルが置かれているパスを基準に検索されます。


フォントサイズは正数または負数の値を指定します。
これはオペレーティングシステム設定からの依存性を定義します。

 ■正数で指定した場合。
サイズは物理的な論理フォントに変換する際に、デバイスの物理的な測定単位(ピクセル)に変換されます。
このサイズは使用可能なフォントから選択したシンボルのグリフ(字形)の高さに対応します。

TextOut()関数によるテキスト表示と、グラフィカルオブジェクトのOBJ_LABELによる表示を
チャート上で一緒にする場合は、正数指定はお勧めしません。



 ■負数で指定した場合。
指定した負数は、分解能[0.1pt]で設定されたものと判断されます(-350を指定した場合は35.0pt)。
この値はデバイスの物理的な測定単位(ピクセル)に変換され、利用可能なフォントから選択したシンボルの高さの絶対値に相当します。
Multiply the font size specified in the object properties by -10 to make the size of a text on the screen similar to the one in OBJ_LABEL object.




フラグ(flags)は、フォント幅とフォントスタイルフラグを組み合わせて使用する事が出来ます。

フォントスタイルフラグ
フラグ 詳細
FONT_ITALIC 斜体
FONT_UNDERLINE 下線
FONT_STRIKEOUT 取り消し線


フォント幅
フラグ 詳細
(管理人が"Arial"フォントで試した結果です。他フォントなら変化があるかもしれません)
FW_DONTCARE 通常
FW_THIN 通常
FW_EXTRALIGHT 通常
FW_ULTRALIGHT 通常
FW_LIGHT 通常
FW_NORMAL 通常
FW_REGULAR 通常
FW_MEDIUM 通常
FW_SEMIBOLD やや太字
FW_DEMIBOLD やや太字
FW_BOLD 太字
FW_EXTRABOLD 太字
FW_ULTRABOLD 太字
FW_HEAVY 太字
FW_BLACK 太字




サンプルソース:
#property strict // strictは絶対に削除しない事
#property indicator_chart_window // カスタムインジケータをチャートウインドウに表示する

#define IMG_WIDTH  200    // 描画サイズ幅
#define IMG_HEIGHT 200    // 描画サイズ高さ

uint  ExtImg[IMG_WIDTH*IMG_HEIGHT]; // 描画配列(バッファ)

//+------------------------------------------------------------------+
//| 初期化イベント                         
//|------------------------------------------------------------------|
void OnInit() {  

   ObjectsDeleteAll();

   ArrayFill(ExtImg,0, IMG_WIDTH * IMG_HEIGHT ,0);         // 描画配列バッファを0クリア
   
   ObjectCreate(0,"CLOCK",OBJ_BITMAP_LABEL,0,0,0);      // OBJ_BITMAP_LABELオブジェクト作成

   // CLOCKオブジェクトに書き込む為のグラフィカルオブジェクトリソース名を指定
   ObjectSetString(0,"CLOCK",OBJPROP_BMPFILE,"::IMG"); 
 
   EventSetTimer(1);                                      // OnTimerセット[分解能:1sec]

}

//+------------------------------------------------------------------+
//| アンロードイベント                         
//|------------------------------------------------------------------|
void OnDeinit(const int reason){
   ObjectDelete(0,"CLOCK");                       // CLOCKオブジェクト削除
}

//+------------------------------------------------------------------+
//| タイマーイベント                         
//|------------------------------------------------------------------|
void OnTimer() {

    string out_text;
    
    ArrayFill(ExtImg,0, IMG_WIDTH * IMG_HEIGHT ,0);                    // 描画バッファ配列を0クリア

    out_text = TimeToStr(TimeLocal(),TIME_DATE | TIME_SECONDS);   // 現在PCの日時を取得
    
    // 描画メソッドのフォント設定(MSゴシック, 10.0pt, 30度)
    TextSetFont("MS ゴシック",-100,FW_EXTRABOLD, 300);            

    TextOut(out_text,30,100,TA_LEFT|TA_TOP,                          // 出力テキスト設定
             ExtImg,IMG_WIDTH,IMG_HEIGHT,clrWhite,COLOR_FORMAT_XRGB_NOALPHA);
    
    ResourceCreate("::IMG",ExtImg,IMG_WIDTH,IMG_HEIGHT,              // グラフィカルリソース(IMG)作成
                     0,0,IMG_WIDTH,COLOR_FORMAT_XRGB_NOALPHA);
    
    ChartRedraw();                                                   // チャートを強制再描画
 
}

//+------------------------------------------------------------------+
//| OnCalculate(tick受信)イベント
//| カスタムインジケータ専用のイベント関数
//+------------------------------------------------------------------+
int OnCalculate(const int     rates_total,      // 入力された時系列のバー数
                const int       prev_calculated,  // 計算済み(前回呼び出し時)のバー数
                const datetime &time[],          // 時間
                const double   &open[],          // 始値
                const double   &high[],          // 高値
                const double   &low[],           // 安値
                const double   &close[],         // 終値
                const long     &tick_volume[],   // Tick出来高
                const long     &volume[],        // Real出来高
                const int      &spread[])        // スプレッド
{


   return( rates_total ); // 戻り値設定:次回OnCalculate関数が呼ばれた時のprev_calculatedの値に渡される
}


結果:





スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system