当前位置:编程学习 > C#/ASP.NET >>

vc++.net 2005 clr 项目Drawline函数

   我用vc++.net 2005建了一个clr windows应用程序项,然后用:
   System::Drawing::Pen^ myPen =
   gcnew System::Drawing::Pen(System::Drawing::Color::Red);
   System::Drawing::Graphics^ formGraphics;
   formGraphics = this->CreateGraphics();
   formGraphics->DrawLine(myPen, 50, 50, 200, 200); 
   delete myPen;
   delete formGraphics;

  上面语句画了多条直线,但这个窗口被其它窗口,遮了,或者最小化还原后线就不再了,请问要怎么处理,MSDN上说要重写
virtual void OnPaint (PaintEventArgs^ e) override 我弄了两三天也没弄明白,怎么写,请问怎么写啊,第一次发帖,若有不敬,请包涵.. --------------------编程问答-------------------- 给你的Fomr1.h加上这个函数:
public:
virtual void OnPaint(PaintEventArgs^ e) override
{
Form::OnPaint(e);
System::Drawing::Pen^   myPen   =  gcnew   System::Drawing::Pen(System::Drawing::Color::Red); 
System::Drawing::Graphics^   formGraphics = e->Graphics;; 
formGraphics-> DrawLine(myPen,   50,   50,   200,   200);   
//delete   myPen; 
//delete   formGraphics; 
}
OnPaint是Form的一个虚函数,它在需要窗体重绘的时候自动执行,如果我们重写了这个方法,窗体重绘的时候就会执行我们的代码。
还有就是C++ .NET同样采用垃圾回收器管理托管对象,理论上说无需使用delete运算符“删除”它。delete并没有真的“删除”它,而是执行了对象的Dispose方法而已,对于大部分对象,不需要立刻执行它的Dispose方法。在之后垃圾回收器清理这个对象的时候会调用它。
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,