gpt4 book ai didi

C++/CLI Visual C++ 2010 Express - 在一个面板内绘制不同的形状

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

我遇到了一个问题。我想将 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/

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