トップ  >  リファレンス  >  オブジェクト関数  >  TextSetFont
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
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

#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オブジェクト作成
   ObjectSetString(0,"CLOCK",OBJPROP_BMPFILE,"::IMG"); // CLOCKオブジェクトに書き込む為のグラフィカルオブジェクトリソース名を指定
 
   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の日時を取得
    
    TextSetFont("MS ゴシック",-100,FW_EXTRABOLD, 300);            // 描画メソッドのフォント設定(MSゴシック, 10.0pt, 30度)

    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();                                                   // チャートを強制再描画
 
}


結果:



スポンサーリンク



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


Top

inserted by FC2 system