我正在尝试创建一个慷慨而快速的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;
}
我正试图创造这样的东西......
而是一种动态方式来创建组件并向表单添加组件 好吧,我要做的是创建一个我可以访问它的类,并创建多个按钮,这个类,在Form上添加这些按钮可能是这样的:
ADD_BTM^ btm;
btm->Add(20,20,"Hello 1");
btm->Add(20,20,"Hello 2");
您也可能想知道,为什么我没有“设计”我的界面,我正在学习C ++ / CLI,而我正在尝试创建这个程序,只是为了学习。 我很感激帮助。
答案 0 :(得分:1)
您已经知道如何向表单添加新按钮,您只需要向方法添加参数然后重复调用它:
public
的{{1}}部分:
GUI
在void AddButton(int x, int y, String^ caption)
{
auto button = gcnew Button();
button->Location = Point(x, y);
button->Text = caption;
Controls->Add(button);
}
:
main
(代码使用C ++ 11中的auto form = gcnew GUI();
form->AddButton(20, 20, "Hello 1");
form->AddButton(40, 40, "Hello 2");
Application::Run(form);
。如果你不使用VS 2010,只需用实际类型替换它们。)