vc++ 学习笔记11
来源:互联网 发布:淘宝十大平面男模特 编辑:程序博客网 时间:2024/06/05 00:36
图形的保存和重绘
首先建立画图的四个选项:点,线,矩形,椭圆的按钮,并添加成员变量,表示每个图形的种类;
其次添加m_drawtype,和cpoint记录用户选择的画图类型和点的坐标位置;
添加消息响应函数,BUTTONDOWN和BTUTTONUP;并在函数里面实现画图的函数;
此时可以画图,但是当窗口变化时,图像消失,因此,想到建立一个数据结构,保存用户画的图像特点,然后将其重画;因此插入一个普通类,保存图像数据;
首先建立画图的四个选项:点,线,矩形,椭圆的按钮,并添加成员变量,表示每个图形的种类;
其次添加m_drawtype,和cpoint记录用户选择的画图类型和点的坐标位置;
添加消息响应函数,BUTTONDOWN和BTUTTONUP;并在函数里面实现画图的函数;
void CGraphic1View::OnPoint() {// TODO: Add your command handler code herem_nDrawType=1;}void CGraphic1View::OnLine() {// TODO: Add your command handler code herem_nDrawType=2;}void CGraphic1View::OnRectangle() {// TODO: Add your command handler code herem_nDrawType=3;}void CGraphic1View::OnElipse() {// TODO: Add your command handler code herem_nDrawType=4;}void CGraphic1View::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultCView::OnLButtonDown(nFlags, point);m_point=point;}void CGraphic1View::OnLButtonUp(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);CBrush*pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//此处利用CBrush里面的静态创建Fromhandle()函数,通过一个dc句柄来创建一个画刷,dc句柄通过GetstockObject()获得,传递一个透明画刷,并强转成画刷格式;dc.SelectObject(pBrush);switch(m_nDrawType){case 1:dc.SetPixel(point,RGB(0,1,0));break;case 2:dc.MoveTo(m_point);dc.LineTo(point);break;case 3:dc.Rectangle(CRect(m_point,point));break;case 4:dc.Ellipse(CRect(m_point,point));break;default:break;}CView::OnLButtonUp(nFlags, point);}
此时可以画图,但是当窗口变化时,图像消失,因此,想到建立一个数据结构,保存用户画的图像特点,然后将其重画;因此插入一个普通类,保存图像数据;
class CGraphic {public:CGraphic();CGraphic(UINT m_SaveDrawType,CPoint m_StartPoint,CPoint m_EndPoint);//重载一个初始化函数,方便用户对3个成员变量赋值virtual ~CGraphic();public:UINT m_SaveDrawType;CPoint m_StartPoint;CPoint m_EndPoint;};关于图形坐标的轮换操作需要重新疏导,有点乱
- vc++ 学习笔记11
- 2007-11-7 VC学习笔记
- VC学习笔记11尝试互联网
- VC++学习笔记1
- VC++学习笔记2
- VC学习笔记
- VC++ 学习笔记(-)
- VC++ 学习笔记(二)
- VC++学习笔记(三)
- VC++学习笔记(四)
- vc++学习笔记(五)
- VC++7学习笔记
- VC学习笔记
- VC++学习笔记
- VC学习笔记
- VC++学习笔记001
- VC学习笔记
- VC++学习笔记
- 程序员的九阳真经
- android中的所有activity间动画跳转
- iOS正则表达式的使用
- Java读取Properties文件的六种方法
- DataGridView控件用法合集
- vc++ 学习笔记11
- Objective-C学习笔记
- 验证xml--xsd和dtd
- AIZU 1259
- asp.net中的数据绑定详解
- android 发送短信 判断号码规则 判断字符数70
- 一个超棒的CSS属性排序工具 - CSScomb
- poj 2777 Count Color 线段树+位运算
- SQL 2008 SP2 找不到SQL Server Engine