2011-12-11 27 views
0

我遇到了问题。有我想用作我的paiting窗口的panel1。而且我也有2个按钮。应该在面板中间画“fillRectangle”,第二个应该在旁边画“fillellipse”。我没有绘图本身的问题C++/CLI Visual C++ 2010 Express - 在一个面板内绘制不同的形状

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 

被使用按钮设置?我希望我可以在按钮或函数内编写绘图部分,然后以某种方式引用该面板。可能吗?

回答

1

如果你想让按钮有自己的绘画例程,那么他们自己绘画,而且无论如何绘制你的面板都是不必要的,他们将拥有自己的画布。

如果您希望借鉴本身的形状依赖于某些属性面板,然后是你去像你建议的路线,但我会通过某种形状类的,即使它是不是动心控制。会使添加其他形状或更多的形状更容易。

你可以让面板携带一组实现形状的集合,这些形状实现了IDraw,它接受一个Graphics引用,然后遍历它们并用Panel1的图形实例调用它。

如果它是我,但特别是如果我想启用,可见,选项卡,单击等。我会有一个ShapedButton控件。

相关问题