記事"CCanvas クラスを知る透明なオブジェクトの描画方法"についてのディスカッション - ページ 2

 
denkir:

質問はこうだ。カンヴァスをグラフ上で移動させるには、どのような実装が最適でしょうか?メソッドのようなものです:

canvas" - 標準の OBJ_BITMAP_LABEL または OBJ_BITMAP を作成します。ヘルプには、グラフ上にそれらを配置する方法についての関数があります。

 //+------------------------------------------------------------------+
//|| グラフィック・ラベル "オブジェクトを移動する。
//+------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // チャートID
                     const string name="BmpLabel", // タグ名
                     const int    x=0,             // X軸座標
                     const int    y=0)             // Y軸座標
  {
//--- エラー値をリセットする
   ResetLastError();
//--- オブジェクトを移動する
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": オブジェクトのX座標の移動に失敗しました!エラーコード = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": オブジェクトのY座標の移動に失敗しました!エラーコード = ",GetLastError());
      return(false);
     }
//--- 実行成功
   return(true);
  }

上の議論にすぐに気がつきませんでした :)- 実際はZORDERと同じで、XとYだけ。

 
MigVRN:

"canvas" - 標準的な OBJ_BITMAP_LABEL または OBJ_BITMAP を作成します 。チャート上に配置するための関数がヘルプにある。

上の議論にすぐに気がつきませんでした :)- 実際はZORDERと同じで、XとYだけです。

ありがとう、うまくいったよ。自分でもObjectMoveを使ってみたんだけど・・・。

取引、自動取引システム、取引戦略のテストに関するフォーラム

CCanvasクラスを学ぶ。グラフィカル・オブジェクトの透過性の実現"

barabashkakvn, 2015.03.10 12:00 AM

また、移動する目的は何でしょうか?キャンバス上に描画を再描画した方が良いのでは?
kanvasを使ってパネルを作成しているのですが...。チャート上で可能な限り移動させたいのですが...。
 
denkir:

うん、ありがとう。自分でもObjectMoveを使ってみたんだけど...

kanvasの助けを借りてパネルを作成しています...チャート上で可能な限り移動させたいのですが...
パネルが標準のダイアログに基づいて作成されている場合、そのダイアログで作成されたすべてのエレメントと、そのダイアログで作成されたすべてのエレメントを移動する必要があります。その場合、ダイアログで作成され、ダイアログに追加されたすべての要素は、ダイアログと一緒にドラッグされます。
 
barabashkakvn:
パネルが標準ダイアログに基づいて作成された場合はどうなりますか?そうすると、ダイアログで作成され、ダイアログに追加されたすべての要素は、ダイアログと一緒にドラッグされます。
そうですね、便利な機能だと思います...。今まではそうしていました...。しかし、パネルにカスタムグラフィックを 追加する方法には疑問があります。一般的には、カンバスのようなコントロールを作る必要がある。今、この疑問について考えているのだが・・・。
 
denkir:
そうだね、便利な機能だね。今まではそうしていたんだけど...。でも、パネルにカスタム・グラフィックを追加するにはどうしたらいいんだろう?一般的には、カンバスのようなコントロール:public CWndObjを作る必要がある。今、この疑問について考えている。

ポストから ビデオを見てください。

3月15日以降はソースコードになります。

 
denkir:
そうだね、便利な機能だね。今まではそうしていたんだけど...。でも、パネルにカスタム・グラフィックを追加 するにはどうしたらいいんだろう?一般的には、カンバスのようなコントロール:public CWndObjを作る必要がある。今、この疑問について考えています...

カスタム・グラフィックス」とはどういう意味ですか?

  • つまり、プログラマーとして描くものですか?
  • つまり、プログラムのユーザーから画像を受け取り、その画像をキャンバスに表示するということですか?
 
barabashkakvn:

"カスタム・グラフィック "とはどういう意味ですか?

  • プログラマーとして描くものという意味ですか?
  • つまり、プログラムのユーザーから画像を受け取り、その画像をキャンバスに表示する、ということですか?
はい、曖昧でした......。CCanvasクラスのメソッドを使って、動的に異なる図形を作成する機能のことです。
 

ウラジミール、他にも聞きたいことがあるんだ。

CAppDialog 型のパネルがあります。その要素のひとつを CBmpButton型のグラフィカル・ラベルと します 。そこで、キャンバスを作成し、指定されたラベルとリンクさせる方法はありますか? ゴールは、カスタム・グラフィックス機能を持つ制御可能なパネル要素を持つことなのですが・・・?

ありがとうございます。

 
denkir:

ウラジミール、他にも聞きたいことがあるんだ。

CAppDialog 型のパネルがあります。その要素のひとつを CBmpButton型のグラフィカル・ラベルと します 。そこで、キャンバスを作成し、指定されたラベルとリンクさせる方法はありますか? ゴールは、カスタム・グラフィック機能を持つ制御可能なパネル要素を持つことなのですが・・・?

ありがとうございます。

Create メソッドでグラフィックオブジェクトにリンクすることなくキャンバス(つまり複数のキャンバス)を作成し、これらのリソースをBmpButtonに割り当てることができます。アニメーションを作ることもできる。ところで、アニメーションについては、ずっと考えていきたい。
 

ウラジミール、アドバイスをありがとう!

そう、キャンバスはとてもパワフルなんだ :-)

あなたの面白い記事を待っています!