创建画线控件窗口大小改变引起的重绘,保存图像问题。

当窗口尺寸发生改变引起窗口重绘的问题:
  (1)先声明一个新类。例:画线控件:class Csave  //声明的保存类
 {
  public:
    CPoint n;//声明跟原来一样的属性变量
    CPoint m;
    Csave(CPoint,CPoint);//特别注意这里通常采用有参的构造函数,以便后面的调用
    virtual ~Csave();

};
(2)然后为程序的类(一般就是主程序类含OnDraw和LBUTDOWN等之类的)增加一个CPtrArray类型的成员变量:m_ptrArray。
在程序的执行代码中参照添加如下代码:
    Csave *psave=new Csave(m_p1,m_p2);//此处需要用指针类型的的变量
    m_ptrArray.Add(psave);//
    COleControl::OnLButtonUp(nFlags, point);//此处不是添加的代码。
  //在这里使用的新添加类,所以要在前部添加对应的头文件名如:#include "save.h".
(3)然后在OnDraw函数中将保存的图形元素再次显示出来;
   代码:
   CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
    pdc->SelectObject(pBrush);//首先创造一个透明的画刷。

    for(int i=0;i<m_ptrArray.GetSize();i++)
    {
           pdc->MoveTo(((Csave*)m_ptrArray.GetAt(i))->m);
     //GetAt函数实际上是从m_ptrArray集合对象中取出其保存的地址。
           pdc->LineTo(((Csave*)m_ptrArray.GetAt(i))->n);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值