为了学习c语言在windos内的应用,我们在mfc环境下设计一款满足依据用户的需求,进行简单的点,线,矩形的绘制的程序。
新建一个mfc单文档程序。
在资源视图中添加一个含有三个菜单项的菜单,分别为点、线、矩形。
为菜单项添加命令响应(类向导)并编译。
为了根据用户的选择绘制图形,插入一个uint类型的私有变量sun,将用户的选择保存在该变量中。为了确定画图的起始点,需要插入一个cpoint型私有变量moon。并在构造方法中将其初始化为0。
根据用户不同的选择,给sun不同的值:点1,线2,矩形3。
为了完成绘图功能,需要对用户鼠标左键的起落分别进行捕获,于是添加两个windos消息处理器:wm_lbuttondown与 wm_lbuttonup。
鼠标左键按下时我们将点的位置保存在之前定义的moon之中。
鼠标左键抬起时我们根据用户的选择进行画图(用户的选择保存在sun里),使用cclient语句画图,用一个switch 语句选择用户的需求,调用不同的函数(包括。
为了图形的美观,添加了一个空白画刷和一个画笔。
1.矩形的绘制。
2.矩形与直线。
/ 课程设计 : implementation of the cassignview class
#include ""
#include "课程设计"
#include "课程设计"
#include "课程设计"
#ifdef _debug
#define new debug_new
#undef this_file
static char this_file file__;
#endif
/ cassignview
implement_dyncreate(cassignview, cview)
begin_message_map(cassignview, cview)
//}afx_msg_map
// standard printing commands
on_command(id_file_print, cview::onfileprint)
on_command(id_file_print_direct, cview::onfileprint)
on_command(id_file_print_preview, cview::onfileprintpreview)
end_message_map()
/ cassignview construction/destruction
cassignview::cassignview()
// todo: add construction code here
sun=0;
moon=0;
cassignview::~cassignview()
bool cassignview::precreatewindow(createstruct& cs)
// todo: modify the window class or styles here by modifying
// the createstruct cs
return cview::precreatewindow(cs);
/ cassignview drawing
void cassignview::ondraw(cdc* pdc)
cassigndoc* pdoc = getdocument();
assert_valid(pdoc);
// todo: add draw code for native data here
/ cassignview printing
bool cassignview::onprepareprinting(cprintinfo* pinfo)
// default preparation
return doprepareprinting(pinfo);
void cassignview::onbeginprinting(cdc* /pdc*/,cprintinfo* /pinfo*/)
// todo: add extra initialization before printing
void cassignview::onendprinting(cdc* /pdc*/,cprintinfo* /pinfo*/)
// todo: add cleanup after printing
/ cassignview diagnostics
#ifdef _debug
void cassignview::assertvalid() const
cview::assertvalid();
void cassignview::dump(cdumpcontext& dc) const
cview::dump(dc);
cassigndoc* cassignview::getdocument() non-debug version is inline
assert(m_pdocument->iskindof(runtime_class(cassigndoc)))
return (cassigndoc*)m_pdocument;
#endif //debug
/ cassignview message handlers
void cassignview::ondot()
// todo: add your command handler code here
sun=1;
void cassignview::online()
// todo: add your command handler code here
sun=2;
void cassignview::onrectangle()
// todo: add your command handler code here
sun=3;
void cassignview::onlbuttondown(uint nflags, cpoint point)
// todo: add your message handler code here and/or call default
moon=point;
cview::onlbuttondown(nflags, point);
void cassignview::onlbuttonup(uint nflags, cpoint point)
// todo: add your message handler code here and/or call default
cview::onlbuttonup(nflags, point);
cclientdc dc(this);
cpen pen(ps_solid,2,rgb(0,255,0));
cbrush *pbrush=cbrush::fromhandle((hbrush)getstockobject(null_brush));
switch(sun)
课程设计说明书
材料化学。涂装工艺。班级 材料化学081 姓名。学号。指导教师。时间 二 一一年七月八日 19 09 56 目录。表面工程课程设计任务书 1 1 概况 2 1.1 设计任务书及目标 2 1.2 设计任务书 2 1.3 设计单位概况 2 1.4 设计原则 4 1.5 设计范围 4 1.6 设计技术标准...
课程设计说明书
一 题目 离合器接合叉零件加工工艺规程 及车 25外圆及端面夹具设计 二 时间 自年月日至年月日止。三 要求 1 编制离合器接合叉加工工艺规程一套。2 绘制离合器接合叉零件图一张。3 绘制夹具结构装配图一张。4 绘制夹具体图一张。5.编写设计说明书一份。目录。序言1 第一章零件分析2 1.零件的作用...
课程设计说明书
河南科技学院。机电一体化课程设计。模块化生产系统设计 无杆缸传送站。学生姓名 王坤朋。所在院系 机电学院。所学专业 机电技术教育。导师姓名 胡楠李海波。完成时间 2018 年6月22日。摘要。模块化生产系统主要模拟工业生产过程中完成零件钻孔加工和装配的系列过程,该系统共有八个工作站,分别为上料检测站...