c语言 实验报告 实验四
更新时间:2024-06-27 16:07:01 阅读量: 综合文库 文档下载
- c语言推荐度:
- 相关推荐
广州大学学生实验报告
开课学院及实验室:机械与电气工程学院、计机楼601B 年 月 日
学 院 实验课程名称 实验项目名称 机电学院 年级、专业、班 高级C语言及其应用 实验四:外设的应用 姓名 学号 成绩 指导教师 一、实验目的 1. 掌握键盘的基本编程方法 2. 掌握鼠标的基本编程方法 二、实验原理 三、实验设备 计算机、VC++6.0 四、实验内容与结果 1、接收键盘的按键值, 并打印出来; 若按下的是“Esc”键则退出。 #include
2、用鼠标画一条线。
// DrawView.cpp : implementation of the CDrawView class //
#include \#include \
#include \#include \
#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CDrawView
IMPLEMENT_DYNCREATE(CDrawView, CView)
BEGIN_MESSAGE_MAP(CDrawView, CView) //{{AFX_MSG_MAP(CDrawView) ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_MOUSEMOVE() //}}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()
///////////////////////////////////////////////////////////////////////////// // CDrawView construction/destruction
CDrawView::CDrawView() {
// TODO: add construction code here m_bDraw = FALSE; }
CDrawView::~CDrawView() { }
BOOL CDrawView::PreCreateWindow(CREATESTRUCT& cs) {
// TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs
return CView::PreCreateWindow(cs); }
///////////////////////////////////////////////////////////////////////////// // CDrawView drawing
void CDrawView::OnDraw(CDC* pDC) {
CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here }
///////////////////////////////////////////////////////////////////////////// // CDrawView printing
BOOL CDrawView::OnPreparePrinting(CPrintInfo* pInfo) {
// default preparation
return DoPreparePrinting(pInfo); }
void CDrawView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {
// TODO: add extra initialization before printing }
void CDrawView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {
// TODO: add cleanup after printing }
///////////////////////////////////////////////////////////////////////////// // CDrawView diagnostics
#ifdef _DEBUG
void CDrawView::AssertValid() const {
CView::AssertValid(); }
void CDrawView::Dump(CDumpContext& dc) const {
CView::Dump(dc); }
CDrawDoc* CDrawView::GetDocument() // non-debug version is inline {
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDrawDoc))); return (CDrawDoc*)m_pDocument; }
#endif //_DEBUG
///////////////////////////////////////////////////////////////////////////// // CDrawView message handlers
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default m_ptOrigin = point; m_ptOld = point; m_bDraw = TRUE;
CView::OnLButtonDown(nFlags, point); }
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) {
/* // 首先获得窗口的设备描述表 HDC hdc;
hdc = ::GetDC(m_hWnd); //移动到线条的起点
MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL); //画线
LineTo(hdc, point.x, point.y); //释放设备描述表
::ReleaseDC(m_hWnd,hdc); */
/* CDC* pDC = GetDC();
pDC->MoveTo(m_ptOrigin); pDC->LineTo(point); ReleaseDC(pDC);
*/ // CClientDC dc(GetParent());
CWindowDC dc(GetDesktopWindow()); // CWindowDC dc(GetParent()); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
/* CPen pen(PS_DOT,1,RGB(255,0,0)); CClientDC dc(this);
CPen* pOldPen = dc.SelectObject(&pen); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
dc.SelectObject(pOldPen);
*/ /* //创建一个红色画刷
CBrush brush(RGB(255,0,0)); //创建并获得设备描述表 CClientDC dc(this);
//利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m_ptOrigin,point),&brush);
*/ /* //创建位图对象 CBitmap bitmap; //加载位图资源
bitmap.LoadBitmap(IDB_BITMAP1); //创建位图画刷
CBrush brush(&bitmap); //创建并获得设备描述表 CClientDC dc(this);
//利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m_ptOrigin,point),&brush);
*/ //创建并获得设备描述表 /* CClientDC dc(this); //创建一个空画刷
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
//将空画刷选入设备描述表
CBrush *pOldBrush = dc.SelectObject(pBrush); //绘制一个矩形
dc.Rectangle(CRect(m_ptOrigin,point)); //恢复先前的画刷
dc.SelectObject(pOldBrush); */
m_bDraw = FALSE;
CView::OnLButtonUp(nFlags, point); }
void CDrawView::OnMouseMove(UINT nFlags, CPoint point) {
/* CClientDC dc(this);
dc.SetROP2(R2_MERGENOTPEN);
//创建一个红色的、宽度为1的实线画笔 CPen pen(PS_SOLID, 1, RGB(255,0,0)); //把创建的画笔选入设备描述表
CPen *pOldPen = dc.SelectObject(&pen); if(m_bDraw == TRUE) {
// dc.MoveTo(m_ptOrigin); // dc.LineTo(m_ptOld); dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.LineTo(m_ptOld); //修改线段的起点
//m_ptOrigin = point; m_ptOld = point; }
//恢复设备描述表
dc.SelectObject(pOldPen); */
CView::OnMouseMove(nFlags, point); }
五、实验分析与总结 这个实验觉得很难,键盘还好,但是由于书本上所用的bioskey()是要用VT做的,而我用的是VC,所以出现了错误。后来多方查找资料,才知道bioskey()用vc做不了,则改成了使用getch0,和kbhit()来做,但是它们的使用方法和bioskey不同,要自己查找。 而第二道题用鼠标划线,则是太复杂了,自己编程基本上编译不出来,最后我上网查找了许多资料,问了老师,再参考了一下老师的程序才算是做了出来。 说明:各学院(实验中心)可根据实验课程的具体需要和要求自行设计和确定实验报告的内容要求和栏目,但表头格式按照“实验项目名称”栏以上部分统一。
正在阅读:
c语言 实验报告 实验四06-27
物理化学课后习题第二章答案11-14
E2010100基础会计专科模拟题与答案03-08
幻方05-14
编译原理期末试题(8套含答案+大题集)03-11
小学一年级学生评语大全03-08
2022年秋人教版七年级数学上册暑期课程跟踪——2.1.2单项式提优04-17
3典型转向架09-15
雅思口语-lecture208-19
2014年上海市初中语文考纲06-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 语言
- 报告
- 中国出口信用信用保险存在的问题及对策
- 电脑连接电视方法2 - 图文
- 陕西航空职业技术学院工程力学教案提要
- 精选25绩效评价表范本 - 图文
- 高一物理上册期末调研测试卷 - 图文
- 醋酸地塞米松和硝酸咪康唑的配伍情况分析大论文
- 2018年全国各地中考语文模拟试题现代文阅读试题汇编(含答案解析)
- 在全市工业经济工作会议上的讲话
- 江苏省常州市天宁区九年级化学上册 第5章 金属的冶炼与利用 第3
- 国土资发232号
- 平面解析几何初步测试题
- 长宁镇新村小学工作计划(08秋)
- 大学信息技术基础第四章考试题库1
- 六年级语文下《我的理想》作文学案
- 2010年临清市政府工作报告2010年1月19日
- 江苏省海安高级中学模考卷一
- 浅析我国妇女就业处于弱势问题的原因和对策
- 2010-2011学年度第二学期幼儿园大班期末数学试卷
- 2018-2024年中国真空包装机市场供需发展前景及投资战略预测报告
- 六年级语文十二册句型训练