2011-11-07 12 views
0

GUIでコンポーネントを作成するのに寛大で素早く作成しようとしていますが、私が行ったコードは次のものでしたが、彼は自分が望むことをしていないことを知っています。私のやり方コンポーネントを作成する一般的なフォーム

#using <System.Drawing.dll> 
#using <System.Windows.Forms.dll> 

using namespace System; 
using namespace System::Drawing; 
using namespace System::Windows::Forms; 

public ref class GUI : public Form 
{ 
private: 
    int x, y; 
    String^ text; 
    Button^ btm; 

public: 
    GUI(int _x, int _y, String^ caption) 
    { 
     x = _x; 
     y = _y; 
     text = caption; 
     init_btm(); 
    } 
    void init_btm() 
    { 
     btm = gcnew Button(); 
     btm->Location = Point(x, y); 
     btm->Text = text; 
     Controls->Add(btm); 
    } 
}; 

int main(array<System::String ^> ^args) 
{ 
    Application::Run(gcnew GUI(20,20,"Ola mundo")); 
    return 0; 
} 

私はどうなるのか、コンポーネントを作成しても、フォーム にコンポーネントを追加するための動的な方法は、Iクラスを作成している、むしろ...このようなものを作成するために

をしようとしていますそれにアクセスし、複数のボタンを作成し、このクラス、多分フォーム上でこのような何かをこれらのボタンを追加することができます

ADD_BTM^ btm; 
btm->Add(20,20,"Hello 1"); 
btm->Add(20,20,"Hello 2"); 

私は「デザイン」私のインタフェースではありませんでした、なぜあなたはまた、不思議に思われるかもしれ、私はCを勉強しています++/CLIで、私はこのプログラムを作成しようとしています。 。 私は助けに感謝します。

+0

もう少し問題を説明できますか?何があればそれは何を示していますか?エラーはありますか? –

+0

OK、私は投稿を編集しました... – Alexandre

+0

私は不思議です、なぜあなたはこれのためにC++/CLIを使用しようとしていますか? – svick

答えて

1

あなたはすでにあなただけのメソッドにパラメータを追加して、それを繰り返し呼び出す必要があり、フォームに新しいボタンを追加する方法を知っている:

GUIpublicセクションで:main

void AddButton(int x, int y, String^ caption) 
{ 
    auto button = gcnew Button(); 
    button->Location = Point(x, y); 
    button->Text = caption; 
    Controls->Add(button); 
} 

auto form = gcnew GUI(); 

form->AddButton(20, 20, "Hello 1"); 
form->AddButton(40, 40, "Hello 2"); 

Application::Run(form); 

(コードはC++ 11からautoを使用して、あなただけの、VS 2010を使用していない場合。実際のタイプに置き換えてください)

+0

ボタンに関数ハンドルを追加するには、たとえば、ボタンをクリックした場合、メッセージボックスを表示します....これはどのようにすることができますか? – Alexandre

関連する問題