記事"Using Layouts and Containers for GUI Controls: The CGrid Class"についてのディスカッション

 

新しい記事 Using Layouts and Containers for GUI Controls: The CGrid Class はパブリッシュされました:

この記事では、1つのレイアウトマネージャを使用して、レイアウトやコンテナに基づいて、GUI作成の代替方法を提示しています。CGridクラスは、グリッドレイアウトを使用して、他のコンテナやコントロールのコンテナとして機能する補助コントロールです。

CGridクラスを使用する基本的な例として、ボタンのシンプルなグリッドを提示します。以下はGUIのスクリーンショットです:

ボタンのシンプルなグリッド

図2。ボタンのシンプルなグリッド

作者: Enrico Lambino

 

いつもながら素晴らしい仕事だ、エンリコ。

2つのCEdit フィールドを間隔を空けずに1つずつアノターで配置しようとしたのですが、うまくいきませんでした(固定配置)。

できるでしょうか?例えば、

Total Orders: 3

CEditを2つ使いますが、1つずつ配置しますか?

ありがとうございます。

 
Amir Yacoby:

いつもながら素晴らしい仕事だ、エンリコ。

2つのCEditフィールドを間隔を空けずに1つずつアノターで配置しようとしたのですが、うまくいきませんでした(固定配置)。

できるでしょうか?例えば、

Total Orders: 3

CEditを2つ使いますが、1つずつ配置しますか?

ありがとうございます。

どういたしまして。

グリッドは1つのセルに1つのコンポーネントしか受け付けません。任意のセルに複数のコントロールを 配置する場合は、CBox または CGrid 内にネストする必要があります。

また、CGrid(tk) や CBox を拡張して、どのコントロールが固定配置を使用し、どのコントロールがレイアウトスタイルに従うかを直接指定できるようにすることもできます。

 

Grid Sample.mq5」をコンパイルするとエラーが発生します:

'm_client_area' - private member access error   GridSample.mqh  78      60
'm_client_area' - private member access error   GridSample.mqh  78      91

エラー

 
Karputov Vladimir:

Grid Sample.mq5」をコンパイルするとエラーが発生します:

言語が更新されたのでしょう。以前はこの方法でスーパークラスを呼び出すことができました。しかし今は、CDialogとその継承インスタンスに対してClientAreaWidth 関数とClientAreaHeight 関数を呼び出すことができます。コード

m_main.Create(chart,name+"main",subwin,0,0,ClientAreaWidth(),ClientAreaHeight())