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

octoberwang octoberwang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
参照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)
...全文

相关推荐

运用MFC的Collection类实现桥梁有限元程序中的数据结构.pdf

#资源达人分享计划#

结冰架构

template_Custom_MFC_MFC数据类库跨平台移植_

MFC数据类库跨平台移植,包括cstring、cstring_array、cmap、carray、cptrarray、clist、CTypedPtrArray.可在Windows/linux平台运行。

鹰忍

MFC容器类[参考].pdf

MFC容器类[参考].pdf

xhr131452007

Example098.rar_Windows编程_C++_

vc 读写CTypedPtrArray类 的程序源码,希望对大家有所帮助

pudn01

VC++集合类,详细例子。

MFC 集合类可以按形态和设计方案来分类。MFC 为三种类型的集合形态提供了类: 列表 数组 映射 MFC 还提供三种类型的设计方案: 不使用 C++ 模板。 使用由简单元素组成的基于 C++ 模板的集合。 使用由类型安全指针组成的基于 C++ 模板的集合。 下表标识了按形态和设计方案排序的所有 MFC 集合类。COLLECT 示例阐释了这些集合中的 9 个,每个来自表中的一个单元格。每个代表形态和设计方案的不同组合。另外,由于根据是用来保存指向 CObjects 的指针还是指向非 CObject 的指针,CTypedPtrArray 和 CTypedPtrList 基于模板的集合的用法有所不同,因此 COLLECT 示例阐释这两种情况。COLLECT 所阐释的 9 个集合用星号指示。 集合形状 非基于模板的 基于模板的简单元素 基于模板的 typeSafe 指针 列表 CStringList* CList* CTypedPtrList CObList (属于指针)* CPtrList CTypedPtrList (属于 CObject) 数组 CByteArray CArray* CTypedPtrArray CUIntArray (属于指针) CWordArray* CDWordArray CTypedPtrArray CStringArray (属于 CObject)* CPtrArray CObArray 映射 CMapWordToPtr CMap* CTypedPtrMap* CMapWordToOb CMapStringToString* CMapStringToPtr CMapStringToOb CMapPtrToWord CMapPtrToPtr 其他 COLLECT 功能

阿峰的编程博客
评论
收藏 已收藏
分享
返回顶部
octoberwang
非技术类 1,663 成员 58,947 内容