我遇到了一个问题。我想将 panel1 用作我的绘画窗口。我也有 2 个按钮。一个应该在面板中间绘制“fillRectangle”,第二个应该在它旁边绘制“fillellipse”。我没有绘画本身的问题
Color aColor = Color::FromArgb( 255, 0, 0 );
SolidBrush^ aBrush = gcnew SolidBrush(aColor);
Rectangle rect = Rectangle(x, y, 10, 10);
e->Graphics->FillEllipse(aBrush, rect);
但我想知道,如何让按下每个按钮在面板内绘制不同的形状。我是否需要将椭圆和矩形都放在 panel1_Paint 中并使用类似...的标志
if(ellip == 1) FillEllipse;
if(recta == 1) FillRectangle
哪些是使用按钮设置的?我希望我可以在按钮或函数中编写绘图部分的代码,然后以某种方式引用该面板。可能吗?
最佳答案
如果你想让按钮有自己的绘画例程,那么他们自己画,你的面板是不必要的,反正在绘画方面,他们会有自己的 Canvas 。
如果你想要一个根据某些属性在自身上绘制形状的面板,那么是的,你可以按照你建议的路线走下去,尽管我会被某种形状类所吸引,即使它不是一个控件.将使添加其他形状或更多形状变得更加容易。
您可以让面板携带一组形状,这些形状实现了采用图形引用的 IDraw,然后遍历它们并使用 Panel1 的图形实例调用它。
如果是我,但特别是如果我想要启用、可见、选项卡、单击等。我会有一个 ShapedButton 控件。
关于C++/CLI Visual C++ 2010 Express - 在一个面板内绘制不同的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466635/