2011-12-11 28 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控件。

相關問題