2017-09-03 18 views
1

我在VC++中制作一个Windows窗体,我发现大量的材料讨论如何将Paint事件调用到其他函数或事件中,但是这些事件往往是用C#和这似乎不适用于我,或者他们没有解释代码的实际语法以供我理解。我仍然在学习更详细的编程方面,所以只是告诉我使用Validate()对我没有什么好处。VC++调用Paint事件到一个按钮事件

private: System::Void Stand_wheel_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) 

我有我的Paint事件。如果符合特定条件的陈述会改变绘画中使用的点,

private: System::Void button3_Click_1(System::Object^ sender, System::EventArgs^ e) 

而我的按钮点击,我想触发绘画。我尝试过使用Stand_wheel_Paint名称,它充满了错误。我已经尝试了几乎所有我知道的事情,以便在按钮事件下得到它,而我却不能。我也知道我必须'擦除'旧油漆并重做当前的工作,但是从我发现的东西往往会让我在那里,但是来自C#。我会爱任何人可以提供的帮助。

using (// <- I get an error on this parantheses 
var g = Graphics.FromImage(Stand_wheel.Image)) 
       { 
        e->Graphics->DrawLines(pen, points); 
        Stand_wheel.Refresh(); 
       } 

这看起来接近解决方案,但仍然有错误。

+0

您可能会考虑放弃任务的C++ -cli并探索其他选项/语言。 – Ron

+0

我真的会搬到C#,但唯一阻止我的是我刚开始上课学习它,所以我犹豫不决。 –

回答

0

using块只存在于C#中,这是必需的,因为它没有确定性破坏。 C++/CLI,就像标准的C++一样。如果声明ref class类型的变量而不是跟踪句柄,则当变量超出范围时,将自动调用其Dispose方法。

不需要using,而C++/CLI方法比C#更强大。例如,C++/CLI确定性销毁与类成员数据一样可以像当地人一样轻松处理。