記事"グラフィカルインターフェイスXI:レンダリングされたコントロール(ビルド14.2)"についてのディスカッション - ページ 4

 
Facundo Laje:
ありがとう
 
zlory73:

すみません、修正しました:

そして

まだ何もない...

助けてください1


こんにちは、

Show()関数の代わりにOpenWindow()関数を使用して、これらの問題を解決しました。

今、ウィンドウ2とウィンドウ3にボタンやチェックボックスのようなコントロールを追加したいのですが、次の図のようなエラーが出ました:

画像の読み込みエラーはあまり気にならないのですが...。ポインタへのアクセスだけです:

CWndContainer::AddToElementsArray(1,m_checkbox1);

window_indexはmainが0、window2が1、window3が2のはずですよね?

以前のライブラリ(article06)では、サブウィンドウへのコントロールの追加に問題はありませんでした。

さて、コントロールを追加するコードです:

//------------------CheckBox---------------
  bool CmyPanel_Test2::CreateCheckBox1(const int x_gap,const int y_gap,string text)
  {
//--- メイン・コントロールへのポインタを格納する。
   m_checkbox1.MainPointer(m_window2);
//--- 作成前にプロパティを設定する
   m_checkbox1.XSize(40);
   m_checkbox1.YSize(20);
   m_checkbox1.IsPressed(false);

//--- コントロールの作成
   if(!m_checkbox1.CreateCheckBox("box1",x_gap,y_gap))
      return(false);
//--- オブジェクト・グループの共通配列にオブジェクトを追加する。
    CWndContainer::AddToElementsArray(1,m_checkbox1);
   return(true);
  }
//---------------Button---------- 
  bool CmyPanel_Test2::CreateIconButton1(const int x_gap,const int y_gap,const string text)
  {
//--- メイン・コントロールへのポインタを格納する。
   m_icon_button1.MainPointer(m_window2);
//--- プロパティ
   m_icon_button1.XSize(115);
   m_icon_button1.YSize(22);
   m_icon_button1.IconXGap(3);
   m_icon_button1.IconYGap(3);
   m_icon_button1.TwoState(true);
   m_icon_button1.IconFile("Images\\EasyAndFastGUI\\Icons\\bmp16\\stop.bmp");
   m_icon_button1.IconFileLocked("Images\\EasyAndFastGUI\\Icons\\bmp16\\stop_gray.bmp");
   m_icon_button1.IconFilePressed("Images\\EasyAndFastGUI\\Icons\\bmp16\\start.bmp");
   m_icon_button1.IconFilePressedLocked("Images\\EasyAndFastGUI\\Icons\\bmp16\\start_gray.bmp");
//--- コントロールの作成
   if(!m_icon_button1.CreateButton(text,x_gap,y_gap))
      return(false);
//--- コントロールへのポインタをベースに追加する。
   CWndContainer::AddToElementsArray(1,m_icon_button1);
   return(true);
  }

どなたか教えてください。


PS:私のスレッドで迷惑でないことを願っています。良い一日を。

 
アナリストの327836497を加えれば、74.5%のリターンとなる。
 
Artur Zas:

こんにちは、コントロールのセットは本当に素晴らしく、役に立ちますが、より高いDPI設定をより良い方法で扱うことができれば、さらに良くなるでしょう。

明らかに、ビットマップは正しく表示されますが、テキストは表示されません。...


テキストは適切にスケーリングされていますが、他のグラフィックとは異なります。

 
Ex Ovo Omnia:

他のすべてのグラフィックとは異なり、テキストは適切に拡大縮小されていると言える。


それは見方によるね。フォントサイズに合わせて ビットマップを拡大するか、ビットマップサイズに合わせてフォントサイズを縮小するかのどちらかです。

ビットマップの拡大縮小は、ベクターグラフィックスと違ってビットマップは拡大すると品質が落ちるので、あまりやりたくありません。一方、フォントはベクターベースなので、品質を損なうことなく拡大縮小できます。

この問題に対処する最善の方法はベクターグラフィックスを使うことですが、プラットフォームがそれをサポートしているとは思えません(私はメタトレーダーでグラフィックスを使うことはあまりないので、間違っているかもしれませんが)。

個人的には、DPIに合わせてフォントを縮小しています。

いずれにせよ、コントロールがデフォルトでこれを処理できれば、心配する必要がなくなるのでいいですね。

 
Artur Zas:

それはあなたの見方次第です。フォントサイズに合わせて ビットマップを拡大するか、ビットマップサイズに合わせてフォントサイズを縮小するかです。

ビットマップの拡大縮小は、ベクターグラフィックスと違ってビットマップは拡大すると品質が落ちるので、あまりやりたくありません。一方、フォントはベクターベースなので、品質を損なうことなく拡大縮小できます。

この問題に対処する最善の方法はベクターグラフィックスを使うことですが、プラットフォームがそれをサポートしているとは思えません(私はメタトレーダーでグラフィックスを使うことはあまりないので、間違っているかもしれませんが)。

個人的には、DPIに合わせてフォントを縮小しています。

いずれにせよ、コントロールがデフォルトでこれを処理できれば、心配する必要はありません。


私は画像の拡大縮小の難しさを否定しているわけではなく、フォントサイズの変化が拡大縮小されたメタトレーダー・アプリケーションのGUIに対応していることを見抜いているだけです。ですから、フォントサイズを小さくすると、ハイレゾモニタでは文字がかなり小さくなってしまう可能性があります。

 
Ex Ovo Omnia:

私は画像の拡大縮小の難しさを否定しているわけではなく、フォントサイズの変更がメタトレーダー・アプリケーションのGUIの拡大縮小に対応していることを見抜いているだけです。フォントサイズを小さくすると、ハイレゾモニタでは文字が小さくなってしまうんですね。

そうですね。グラフィックをフォントのサイズに合わせた方が、確かに拡大されたMT5のGUIにマッチします。私はただ、フォント サイズが他のグラフィックと一致する方法で、これをより見栄えよくする方法を探していました。

ラスターグラフィックとベクターグラフィックが混在する環境では、これがベストだと思います。

 

質問:ツリーコントロールのタブタイプへの追加方法ですが、タブモードに設定しても動作しません。コンポーネントをタブに追加できません。 ありがとうございます!メッセージお待ちしております。

 

バージョン10でできるのに、なぜ14-2は表示されないのか?

 

こんにちは、新バージョンの制御編集出力部、テンキーの右側のキーボードの誤動作、入力数字が応答しない、数字入力の左側のみで、対処してください!