要求以上程序要求能够画多个椭圆,该如何实现?(新建一个椭圆类,用到数组类模板CTypedPtrArray)

octoberwang 2011-10-13 09:49:07
参照Windows画笔编制一个绘制椭圆的单文档程序,鼠标左键按下位置为外接矩形左上角位置,鼠标左键谈起位置为外接矩形右下角位置。要求实现鼠标拖拽功能,并能够保存所绘制的图形。
1,选择菜单File|New,系统将显示New对话框,选择Projects标签,在显示的项目类型中选择MFC AppWizard(exe)在右边的Project Name编辑框中输入项目名称“MyDraw”,然后按OK.选择创建单文档应用“Single document”,然后单击Finish键,单击OK,系统自动产生所需要的文件.
2,在Draw clases中双击CDrawDoc定义如下:
public:
CPoint point1;
CPoint point2;
// Operations
3,在Draw classes中的CDrawView下拉的选项中双击onDraw添加代码如下:
void CMyDrawView::OnDraw(CDC* pDC)
{
CMyDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPoint point1=pDoc->point1 ;
CPoint point2=pDoc->point2 ;
pDC->Ellipse (point1.x ,point1.y ,point2.x ,point2.y );
}
4,在Draw classes中的CDrawDoc下拉的选项中双击CDrawDoc添加代码如下:
CMyDrawDoc::CMyDrawDoc()
{
point1.x =0;
point1.y =0;
point2.x =0;
point2.y =0;
}
5,在键盘上按Ctrl+W,在弹出的类向导窗口中的CDrawView下选择WM_LBUTTONDOWN,单击Add Function按钮和Edit Code按钮,在函数中添加代码如下:
void CMyDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
CMyDrawDoc*pDoc=GetDocument();
pDoc->point1 =point;
CView::OnLButtonDown(nFlags, point);
pDoc->UpdateAllViews (NULL);
}
6,在键盘上按Ctrl+W,在弹出的类向导窗口中的CDrawView下选择WM_LBUTTONUP,单击Add Function按钮和Edit Code按钮,在函数中添加代码如下:
void CMyDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
CMyDrawDoc*pDoc=GetDocument();
pDoc->point2 =point;
CView::OnLButtonUp(nFlags, point);
pDoc->UpdateAllViews (NULL);
}
7,在Draw classes中的CDrawDoc下拉的选项中双击Serialize[Carchive &ar] 添加代码如下:
void CMyDrawDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar<<point1.x <<point1.y <<point2.x <<point2.y ;
}
else
{
ar>>point1.x >>point1.y >>point2.x >>point2.y ;
}
}
若要求以上程序要求能够画多个椭圆,该如何实现?(新建一个椭圆类,用到数组类模板CTypedPtrArray)
...全文
74 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
非技术类
创建于2007-09-28

1624

社区成员

VC/MFC 非技术类
申请成为版主
帖子事件
创建了帖子
2011-10-13 09:49
社区公告
暂无公告