gpt4 book ai didi

c++ - 如何在 Windows 窗体应用程序中删除现有矩形之一

转载 作者:行者123 更新时间:2023-11-28 07:38:21 25 4
gpt4 key购买 nike

我在 pictureBox 中创建了一些矩形,我想通过单击另一个按钮删除其中一个,不影响其他矩形。我使用“g->DrawRectangle()”绘制一个矩形,但我不能删除一个他们中的。我试过 pitureBox1->Refresh() 但它删除了我所有的矩形。我只想删除其中一个。

我该怎么做?这是代码:

private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
{
int x;
int y;
int length;
int width;
Color b;

Graphics^ g = pictureBox1->CreateGraphics();

b = Color::FromArgb(Convert::ToInt32(textBox7->Text),Convert::ToInt32(textBox8->Text),Convert::ToInt32(textBox9->Text));
Pen^ myPen = gcnew Pen(b);
myPen->Width = 2.0F;

x = Convert::ToInt32(textBox10->Text);
y = Convert::ToInt32(textBox13->Text);
length = Convert::ToInt32(textBox11->Text);
width = Convert::ToInt32(textBox12->Text);

//Rectangle
hh = Rectangle(x, y, length, width);
g->DrawRectangle(myPen,hh);

}

最佳答案

您需要保留要绘制的矩形列表,删除一个只需停止绘制即可。

例子:

std::vector<Rectangle> rectangles;

void YourButtonClick(...){
// do your stuff
hh = Rectangle(x, y, length, width);
rectangles.push_back(hh);

draw();
}

void draw()
{
pictureBox1->Refresh()
Graphics^ g = pictureBox1->CreateGraphics();
for(int i = 0, max = rectangles.size(); i<max; i++){
g->DrawRectangle(pen, rectangles[i]);
}
}

void deleteRectangle(int index){
Rectangle* rect = rectangles[index];
rectangles.erase(rectangles.begin()+index);

draw();
}

关于c++ - 如何在 Windows 窗体应用程序中删除现有矩形之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com