要求以上程序要求能够画多个椭圆,该如何实现?(新建一个椭圆类,用到数组类模板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)
...全文
182 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 "学成在线项目前端(涉及图片、源码、psd图片等资源)"所关联的知识要点主要分布在多个前端开发的核心范畴,涵盖了HTML、CSS、JavaScript以及设计素材的应用。该项目或许是一个在线教育体系完整界面的前端构建实例,整合了构建此平台所需的所有核心构成部分。 1. **HTML**(HyperText Markup Language)作为一种结构化标记语言,用于网页内容的组织,定义了诸如头部、主体、段落、图像等网页组成部分。在具体项目中,HTML文档负责构建并展示页面的基础架构与内容,例如课程目录展示、用户身份验证模块、课程详细信息展示等单元。 2. **CSS**(Cascading Style Sheets)专注于网页的视觉表现与布局设计,涉及颜色方案、字体选择、尺寸设定、对齐模式等细节。在"学成在线"项目中,CSS技术可能被用于塑造统一的视觉体验,例如按钮外观设计、导航栏布局规划、页面自适应布局实现等,确保在不同设备环境下的兼容性。 3. **JavaScript** 作为一种客户端脚本语言,旨在增强网页的交互性与动态表现。在"学成在线"项目中,JavaScript技术可能应用于用户行为的响应处理,如点击事件触发更多课程内容加载、表单输入验证、页面动态效果呈现、视频播放器控制等操作。此外,它也可能用于实现如AJAX异步数据获取等高级功能,以优化用户使用体验。 4. **PSD图片**代表Photoshop文档格式,通常用于存储设计构思或网页原型设计。在该项目中,PSD文件可能包含了用户界面的设计草图,设计师通过这些文件来规划并预览界面的视觉形态,包括色彩协调、图标...

1,663

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧