MQL4 CAppDialog コンポーネントの色設定

CAppDialog(パネル本体)と、パネルに載せたボタンなどの部品に色を付ける方法を紹介します。

  • 部品の色は ColorBackground()(背景)、Color()(文字)、ColorBorder()(枠線)で変えます
  • パネル本体は、中にある部品(Client・Back・Caption・Border)を名前で探して色を付けます

 

[PR]


色の指定方法

色は color 型の変数で指定します。書き方は次の3通りです。

書き方 例 ポイント
C'赤,緑,青' C'125,125,125' 一番わかりやすい。0〜255で指定
色の名前 clrRed あらかじめ用意された色名を使う
16進数・10進数 0x008000 青・緑・赤の順なので注意

16進数は 0x00BBGGRR(青・緑・赤)の並びです。たとえば 0x0000FF は「赤」になり、HTMLの色コードとは逆になります。迷ったら C'赤,緑,青' か色の名前を使うのが確実です。

CAppDialog 本体の色設定

CAppDialog は見た目は1枚のパネルですが、中は複数の部品が重なってできています。どの部品がどこに当たるかを先に整理しておきます。

部品名 型 色が変わる場所
Client CWndClient パネルの中央(ボタンなどを載せる面)
Back CPanel Client の周り。タイトル右の最小化・閉じるボタンの背景もここ
Caption CEdit タイトル部分(独立している)
Border CPanel 一番外側。Back に覆われるのでほとんど見えない

色を付けるメソッド setDialogColor() を作ります。ControlsTotal() と Control(i) で部品を順番に取り出し、名前(パネル名+"Back" など)で判定して ColorBackground() で色を付けます。

最小化・閉じるボタンの背景は Back と同じ色(ここでは黄色)になります。Caption など、ほかの部品と色を合わせると見た目がまとまります。

CEdit, CButton, CLabel の色設定

CEdit や CButton などの部品は、それぞれの Create 処理の中で色を指定できます。

メソッド 変わる場所
Color() 文字の色
ColorBackground() 背景の色
ColorBorder() 枠線の色

ColorBorder() で枠線に色を付けると、部品の境目がわかりやすくなります。

サンプルコード

ここまでの内容をまとめたコードです。

実行すると、パネルと各部品に色が付きます。

サンプル内でコメントアウトしている ColorBorder() を有効にすると、パネルの各部品に枠線の色も付けられます。

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする