您的位置:首页 > 其它

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

2013-11-17 15:35 375 查看
当窗口尺寸发生改变引起窗口重绘的问题:

(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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: