创建画线控件窗口大小改变引起的重绘,保存图像问题。
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);
}
(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);
}
相关文章推荐
- C#控件窗口大小变化时同时改变控件比例的实现
- 控件大小随窗口大小改变
- 设置控件随窗口大小而改变
- QT中如何使控件随窗口改变大小?
- IE6如何处理因页面大小改变而引起的报表问题 IE6兼容报表
- 运行时改变控件的大小(点击后立刻ReleaseCapture,然后计算位移,最后发消息改变位置)——最有趣的是TPanel其实也有窗口标题,因此可发HTCAPTION消息
- Delphi让控件随着窗口的大小而改变
- Matlab中保存图像时,图形窗口大小的控制
- IE6如何处理因页面大小改变而引起的报表问题 IE6兼容报表
- opencv--用鼠标动态改变显示图像窗口大小
- VS2013 MFC 对话框控件大小随窗口大小改变而改变
- MATLAB图像保存压缩后改变像素值的问题
- winform控件大小改变是防止背景重绘导致的闪烁(转载)
- 控件随窗口大小的改变而改变
- VC++ 坐标问题总结,控件大小随窗口变化
- opencv2改变图像像素大小到指定像素并保存改变后的图像
- 设置控件随窗口大小而改变
- Android使用Palette把drawable转为bitmap图像大小改变的问题
- 当窗口大小改变布局管理器会自动缩小放大控件的大小
- VC++ 坐标问题总结,控件大小随窗口变化