欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    人机接口设备.docx

    • 资源ID:5005913       资源大小:199.07KB        全文页数:36页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    人机接口设备.docx

    人机接口设备一示波器的仿真实现摘要仿真是求解随机问题的技术。随着具有存储功能的计算机的出现,计算机仿 真技术越来越受到重视,现已被应用于各个领域。本系统主要用于教育领域,形 象了演示了示波器的功能,方便了老师的教学。本文主要描述了仿真技术的基本概念以及仿真技术,介绍仿真技术在现实生 活中的应用实例,讨论了仿真理论目前的发展状况、前景以及论文研究的目的和 意义。本文所设计实现的基于仿真技术的示波器仿真实验系统是在Visual C+6.0 开发环境下编程实现的,利用MFC类库和Visual C+提供的高度可视的应用程 序开发工具,在其开发的小型应用程序平台上实现示波器控制面板的绘制、位图 资源的加载,可以分别选择单踪波和双踪波的通道来实现不同波形的动态演示, 以及实现双踪波幅值分离的设计实现和波形周期的增加和减小。本文的最后对设 计研究工作进行了总结,指出了研究上的不足和系统需要改进的地方,说明了需 要进一步深入讨论的内容。关键词:模拟仿真;随机问题;MFC类库;可视化Man-machine Interaction Equipment-Oscilloscope Simulation AbstractSimulation technology is a skill to solve random problem. With the memory function of the computer, computer simulation technology has been widely applied in various fields. The system is mainly used for teaching and the visualized demonstration of the oscilloscope functions will facilitate the teacher's teaching.The thesis describes the basic concepts of simulation technology. And with application examples in real life about simulation, it discusses the current development situation and prospects of simulation technology, as well as the purpose and significance of the research in the thesis.The oscilloscope simulation system which based on simulation technology in the thesis is in Visual C + + 6.0 Programming environments. Using MFC and Visual C + + which provide a high degree of visual application development tools, the system can achieve such functions: the drawing of oscilloscopes control panel, the loading of bitmap resources, the dynamic displaying of different waveform with single-track and double-track channel respectively, and the achievement of amplitude separation and the variation of time cycle of the wave of double-track. Finally, the thesis concludes for the research, and points out the lack of the system and the content for discussing further.Key words : Simulation; Random Problem; MFC; Visualization论文总页数:29页1 引言11.1 仿真理论的发展11.2 计算机仿真技术11.3 计算机仿真应用实例21.4 论文的目的及意义22 系统的总体设计32.1 系统功能说明32.2 开发运行平台选择及分析32.2.1 实现系统的硬件环境32.2.2 实现系统的软件环境42.2.3 实现系统的理论基础43 示波器仿真系统的实现43.1 应用程序平台基本框架的建立43.1.1 添加消息处理函数63.1.2 添加成员变量83.1.3 添加 RECOURCE 资源93.1.4 定时器成员函数103.1.5 通道的选择103.1.6 BUTTON单击事件的设计113.2 曲线面板的设计143.2.1 位图资源及其应用143.2.2 图形刷新163.2.3 获取设备环境183.2.4 映射模式193.2.5 绘图工具213.3 本章小节234 系统运行结果及工作总结234.1 系统运行结果234.2 遇到的问题及解决方法254.3 系统改进方法26结 论26参考文献26致谢27声明281引言1.1仿真理论的发展仿真技术最早可以追溯到1773年法国自然学家G.L.L.Buffon为了估计n的 值而采用随机数做实验来求解随机问题。仿真又称做蒙特卡罗方法。比较早而且 著名的蒙特卡罗方法使用者是W.S.Gosset。他在1908年以“Student”为笔名 发表论文时,使用了蒙特卡罗方法来证明他的t分布法。尽管蒙特卡罗方法起源 于1876年,但是直到75年之后才被命名。现代化的具有程序储存功能的计算机 使冗长的计算成为可能,而这种计算正式蒙特卡罗所要求的。如今计算机仿真技术被广泛运用于众多的领域之中。在国外,1876年,美 国统计学家第一次使用仿真模拟方法做随机实验。进入20世纪80年代,仿真模 拟技术在高科技中所处的地位日益提高。一些发达国家非常重视仿真模拟技术的 开发利用,在科学研究、工业、交通、军事、教育等领域得到大量应用。1.2计算机仿真技术所谓计算机仿真是指在实体尚不存在、或者不易在实体上进行实验的情况 下,先通过对考察对象进行建模,用数学方程式表达出其物理特性,然后编制计 算机程序,并通过计算机运算出考察对象在系统参数以及内外环境条件改变的情 况下,其主要参数如何变化,从而达到全面了解和掌握考察对象特性的目的。计算机仿真技术是作为分析和研究系统运行行为、揭示系统动态过程和运动 规律的一种重要手段和方法。近年来,随着系统科学研究的深入、控制理论、计 算技术、计算机科学与技术的发展,计算机仿真技术已发展成一门新的学科。信 息处理技术的突飞猛进,更使得仿真技术得到迅速发展。一、计算机仿真的特点1. 模型参数任意调整模型参数可根据要求通过计算机程序随时进行调整,修改或补充,使人们能 够掌握各种可能的仿真结果,为进一步完善研究方案提供了极大的方便。2. 系统模型快速求解借助于先进的计算机系统,人们在较短时间内就能知道仿真运算的结果(数 据或图像),从而为人们的实践活动提供强有力的指导。这是通常的数学模型方 法所无法实现的。3. 运算结果准确可靠只要系统模型、仿真模型和仿真程序是科学合理的,那么计算机的运算结果 一定准确无误(除非机器有故障)。因此,人们可毫无顾虑地应用计算机仿真的结 果。4. 实物仿真形象直观只要系统模型、仿真模型和仿真程序是科学合理的,那么计算机的运算结果 一定准确无误(除非机器有故障)。因此,人们可毫无顾虑地应用计算机仿真的结 果。1.3计算机仿真应用实例因工作需要,要求一油缸保持稳定的工作压力,具体参数如下:油缸设定压 力10bar,压力允许误差为15%,蓄能器体积6.3L,充气压力2bar,其它参数如 电机转速、泵排量、缸径、泄露量等皆为已知,图一为该系统的仿真模型,其保 压原理是通过检测液压缸内的工作压力并与设定的压力进行比较从而决定是否 启动电机带动泵运行。当对仿真模型中的每个图形模块设置我们所期望的参数值 后,运行该仿真模型便可得出多种仿真结果。1. 压力对比为了比较采用保压控制和不保压控制这两个方案,仿真的结果告诉我们,由 于没有采用保压控制,在泄漏的影响下,系统的压力一直在下降,经过一段时间 后,缸内的压力就达不到压力要求了,而采用了保压系统的方案,缸内的压力可 以一直维持在要求的压力上。2. 仿真结果通过仿真计算,还可以直接做出采用保压控制方案后缸内压力随时间的变 化,可以知道:缸内压力建立需要的时间是25秒,进一步放大图中直线部分, 我们可以清楚地看到缸内压力的波动情况,压力波动的振幅为0.008bar。此外 我们也可以将电机启动停止情况和压力波动情况绘在一张图上,电机在100秒的 仿真时间内起停了三次。3. 参数优化如果需要考察气囊式蓄能器预充气压力对压力波动、压力建立时间及其保压 时间等参数的影响,可以利用AMESim的Batch仿真运行模式,分别将预充气压 力设定为2bar、5bar和8 bar,从图七中可以明显看出:充气压力小时,压力 波动值较小,但是压力建立时间长,保压时间短;充气压力高时,压力虽可迅速 建立,保压时间也较长,但是压力波动也较大。因此在产品设计阶段我们可以根 据要求在压力波动、压力建立时间及其保压时间之间折衷以确定最佳的预充气压 力。1.4论文的目的及意义本系统的目的是利用VC+进行简单仿真实现的人机交互设备,完成了一个 小型的应用程序及简单示波器仿真系统。论文主要涉及到仿真模拟技术,通过对 次系设计开发对仿真理论的发展及主要内容有了基本的认识与了解。通过对仿真系统的设计与实现,笔者熟悉了 VC+的MFC开发模式流程,掌握了仿真技术的思想,完成了简单的示波器仿真系统,验证了仿真在连续系统仿 真下的可行性。2系统的总体设计系统设计的基本思想是以示波器的工作原理为基础,通过Visual C+语言 设计实现完成一个小型的示波器仿真系统。2.1系统功能说明本系统是利用VC+的MFC类库设计搭建的应用程序基本框架,在其基础上 添加一些相关的类和消息处理机制。本系统在运行以后,就可以点击相关的按钮 来选择单踪波和双踪波的演示。并在此基础上可以点击相应的按钮来调节波形幅 度和波形周期,另外,如果选择的是双踪波的演示,我们可以点击相应的按钮来 实现双踪波的分离,使两个波的幅度差越来越大。直观上充分的说明了示波器的 工作原理。功能模块划分如下:图1功能模块图示波器的虚拟实顼双踪波示波器基本椎架波形模块方波示波器控制面板正弦波2.2开发运行平台选择及分析本系统是以VC+6. 0结合图形可视化的思想作为系统的开发环境。2.2.1实现系统的硬件环境实现本系统的硬件配置如表1所示:表1硬件配置CPUAMD Sempron(tm) 2200+内存1.50 GHz,512 M显卡NVIDIA GeForce4 MX 440 with AGP8X笔者所搭建的仅是一个小型的实验模拟系统,因此一般的用户PC机都可畅 通无阻的运行本程序。2.2.2实现系统的软件环境Visual C+自诞生以来,一直是Windows环境下最主要的应用开发系统之一。 Visual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,利用Visual C+开发系统,可以完成各种各样的应用程序开发,从底层软件直到上层直接面 向用户的软件。而且,Visual C+强大的调试功能也为大型复杂软件的开发提供 了有效的排错手段。进入20实际90年代以来,随着多媒体技术和图形图像技术的不断发展,可 视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员都开始研究并 应用可视化技术。Visual C+是一个很好的可视化编程工具,使用Visual C+ 环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友 好,便于程序员操作。2.2.3实现系统的理论基础Visual C+是一个很好的可视化编程工具,使用Visual C+环境来开发基 于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于操作。 开发环境是编程者同Visual C+的交互界面,通过它可以访问C+源代码编辑器、 资源编辑器、使用内部调试器,还可以创建项目文件。3示波器仿真系统的实现3.1应用程序平台基本框架的建立笔者使用VC+6. 0结合图形可视化技术实现了示波器的仿真试验系统。打开 Visual C+6.0操作界面,建立工程类型为MFC AppWizard exe的对话框文档 的新工程,系统自动为用户创建CMyApp, CMyDlg两个类。创建过程如图所示:Project name: 示波器演示Location:D: WC编程尽波器演示 Create new workspacePlatforms:Win32newFiles Projects Workspaces I Other DocumentsATLCOM AppWizard "Cluster Resource Type Wizard Custom AppWizard (Database Project DevStudio Add-in Wizard 曾 Extended Stored Proc Wizard 矗ISAPI Extension Wizard Makefile IMFC ActiveX Controlwizard 箜 MFC AppWizard dll S3 MFC AppWizard exe 机 Utility Project 前Win32 Application Win32 Console Application g Win32 Dynamic-Link Library 国 Win32 Static Library图2创建工程的界面What type of application would you like to create?Single documentMultiple documents* Dialog based图3选择工程类型的界面Application type of 示波器演示:Dialog-Based Application targeting: Win32Classes to be created:Application: CMyApp in 市板器演示.h and ; 毯鞭示.c叩Dialog: CMyDIg in不波器演不Dlg.h and不披器演不Dlg.cppFeatures:+ About box on system menu+ 3D Controls+ Uses shared DLL implementation (MFC42.DLL)+ ActiveX Controls support enabled+ Localizable text in:中文中国1图4创建好的工程信息界面在Resource View中的Dialog文件目录下有两个对话框,分别为IDD-ABOUTBOX 和 IDD-MY-DIALOG,如下图所示:示波器演示1.版版权所有(C) 2007确定图 5 IDD-ABOUTBOX在IDD-MY-DLALOG对话框中进行设置,在对话框中添加一个 STATICTEXT控件和四个GROUP BOX控件,然后再在每个GROUP BOX控件中添加 相应的BUTTON按纽,结果如图所示:ZI示诚署演示x幅值调节时间调节双踪分离调节色网 判 赢|减小|增加|减小|图 6 IDD_MY_DIALOG3.1.1添加消息处理函数为每个按纽创建类向导,右键单击,选择“CLASS WIZARD”,就会出现如图 所示的对话框:MFC ClassWizardMessage Maps Member Variables Automation ActiveX Events Class InfoProject:Class nanie:22, CMy22DlgD:l.侑用的源代昭2222Dlg.h, D:l.2222Dlg.cppObject IDs:CMy22DlgIDC_AMINUS IDC APLUSMessages:BN CLICKEDBN_DOUBLECLICKEDIDC BMINUSIDC_BPLUSIDC_TIMEMINUSIDC_TIMEPLUSMember functions:V DoDataExchangeW OnAminusON_IDC_AMINUS:BN_CLICKEDW OnAplusON_IDC_APLUS:BN_CLICKEDOnBminusON_IDC_BMINUS:BN_CLICKEDW OnBplusON_IDC_BPLUS:BN_CLICKEDDescription: Indicates the user clicked a button图7 CLASS WIZARD对话框此对话框主要是用来为每个用ID标志的按纽添加消息处理函数,如对应的 ID为IDC-BMINUS的按扭,有两个相应的消息处理函数,如 BN_CLICKED与 BN_DOUBLECLICKED,而我们在此工程中用到的是BN_CLICKED,点击有边的添加消 息处理函数就可以了,双击相应的消息处理函数名就可以进入相应的消息处理函 数的编辑,如对应的幅值增加按扭的消息处理函数为:Void CMy22Dlg:OnVoltplus ()ID_VOLTMINUS (对应的幅值减小的按扭):Void CMy22Dlg:OnVoltminus ()在相应的DLG.H文件中的CLASS CMY22Dlg: publicCDialog中就会出现相 应的消息处理函数的声明(AFX_MSG (CMy22Dlg)Virtual BOOL OnInitDialog ();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnVoltplus();afx_msg void OnVoltminus();afx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidvoidOnTimeplus();OnTimeminus();OnAplus();OnAminus();OnBplus();OnBminus();OnRadio1();OnRadio2();OnRadio3();afx_msg)/AFXDECLARE_MESSAGE_MAP ()MSG3.1.2添加成员变量同样右键单击“ CLASS WIZARD”,在弹出来的对话框中点击“ MemberVariables",就可对相应的控件添加相应的成员变量,如图所示:MFC ClassWizardMessage Maps Member VariablesProject:AutomationActiveX EventsClass name:Class InfoAdd Class. Add Variable.Delete VariableAPLUSCButtonmbtnaplusBMINUSCButtonm btnbminusBPLUSCButtonmbtnbplus1IMEMINUSCButtonm btntimeminusTIMEPLUSCButtonmbtntimeplusVOLTMINUSCButtonm btnvoltminusVOLTPLUSCButtonm btnvoltplus22 CMy22Dlg有用的源代码2222Dlg.h, D:.2222Dlg.cppControl IDs:TypeMemberIDC AMINUSCButtonm btnaminusc c c c c c c D D D D D D DDescription: map to CButton member图8添加成员变量的界面在相应的DLG.H文件中的CLASS CMY22Dlg: publicCDialog中就会出现以 下代码:/ Dialog Data/(AFX_DATA(CMy22Dlg)enum ( IDD = IDD_MY22_DIALOG );CButtonm_btnaminus;CButtonm_btnaplus;CButtonm_btnbminus;CButtonm_btnbplus;CButtonm_btntimeminus;CButtonm_btnvoltplus;CButtonm_btnvoltminus;CButtonm_btntimeplus;CString m_wndscope;/AFX_DATA3.1.3 添加 RECOURCE 资源在“RECOURCE VIEW”中,展开“ ICON”目录,右键单击,选择“ IMPORT” 选项,则会弹出以下对话框:Import Resource查找范围(X):res<=任1廿 固.IX 32X32X16_CANCELBOR.ICO 髭示波器演示,E32X32X16_LEFT.ICO* 32X32X16_OKB0R.ICO胃 32X32X16_RIGHT.ICO& icoOOOOl.ico俞 iconl.ico文件名页):Import文件类型(T):Icons C ico)刁取消Open as:Auto图9导入位图资源界面选择你所要导入的图标所在文件的目录及相应的图标,然后在“ICON”目录 下就会显示刚刚导入的图标,导入之后并设置相应的属性如“ ID”。添加相应的 图标之后,在Dlg.cpp文件中的BOOL CMy22Dlg:OnInitDialog()函数中添加以 下代码为每个按扭加载图标m_btnvoltplus.SetIcon (IDI_LEFT); / 为“幅值增加”按扭设置图标 m_btnvoltminus.SetIcon (IDI_RIGHT); 为“幅值减小”按扭设置图标 m_btntimeplus.SetIcon (IDI_LEFT); / 为“时间增加”按扭设置图标 m_btntimeminus.SetIcon (IDI_RIGHT); 为“时间减少”按扭设置图标 m_btnaplus.SetIcon (IDI_UP);m_btnAMinus.SetIcon (IDI_DOWN);m_btnbplus.SetIcon (IDI_UP);m_btnbminus.SetIcon (IDI_DOWN);同时对STATIC TEXT对象m_wndscope设置标题和度量单位显示的设置m_wndscope.SetTitle("虚拟示波器");/显示标题 m_wndscope.SetValueString ("电压”,"伏");/设置波形显示时的幅值单 位SetTimer (1, 20, NULL);3.1.4定时器成员函数在Dlg.cpp文件中添加定时器函数OnTimer(UINT nIDEvent),在定时器函 数中实现正弦波和余弦波以及方波的的波形实现函数方波的波形实现:首先要定义一个Double类型的变量dTime,调用系统提 供的一个全局函数:timeGetTime()来获取系统当前的时间,然后把获取的系统 当前时间赋值给dTime。因为方波的只有两个逻辑值,那就是低电平和高电平的 显示。所以本文作者在本系统中申明了一个Int类型的变量iTime,通过iTime 对2取余,即可实现只有0和1两种值的功能完整的代码实现:Double dTime =: timeGetTime ()/1000.0;/获取系统当前时间 int iTime = dTime;/对“dTime”类型进行强制类型转换 dValue0 = 4*(iTime%2);/实现只取逻辑值0和1的表达式 余弦波的波形实现:余弦波的波形实现与方波的实现有些类似,但是在实现 正弦波的时候,本文作者需要用到数学中的一个sin()函数,因此在Dlg.cpp中 就要引用math.h头文件。但是Sin ()函数中的参数是直接获取的系统当前时 间。完整的代码实现:Double dTime =: timeGetTime ()/1000.0;/获取系统时间dValue1 = 5*sin(4*dTime) ;/实现余弦波的表达式上面两个函数的实现中有用到的dValue0和dValue1是作者在 OnTimer(UINT nIDEvent)函数中定义的存放方波和弦波值的一个一维数组3.1.5通道的选择在本系统中,作者用到了三个通道来分别实现单踪波A和单踪波B以及双踪 波的选择,在IDD_MY_DLALOG中作者设置了三个RADIO按扭,所以在实现通道选 择的时候,本文作者使用GetCheckedRadioButton()函数来获取按下的是哪一个 按扭,int nID二GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO3),IDC_RADIO1 为第一个按扭的ID,IDC_RADIO3为最后一个按扭的ID,然后我们再判断nID与 IDC_RADIO1,IDC_RADIO2,IDC_RADIO3 的关系。部分代码如下:int nID二GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);If (nID=IDC_RADIO1)(m_wndScope.ClearB();/删除正弦波相关函数,释放内存m_wndScope.AddValueA(dTime,dValue0);随波形的变化增加波形的末断端点 m_wndScope.SetValueA(dValue0);在对话框中产生一个从-4到4变化的数值DevalueA (dTime,dValue0)与 SetValueA(dValue0)两个函数的具体实 现都可以在Scope.cpp类中找到3.1.6 BUTTON单击事件的设计在本系统的对话框中设置了 8个BUTTON,在本文的前章节中已经讲过了如 何为这8个BUTTON添加消息处理函数,分别为void CMy22Dlg:OnVoltplus(), OnVoltminus(),OnTimeplus(),OnTimeminus(),OnAplus(),OnAminus(), OnBplus(),OnBminus(),但是在前章节中并没有写如何对消息处理的,点击相 应的按扭,都会触使m_wndscope这个TEXT对象中的波形的改变,因此在本系统 中,作者在每个BUTTON的消息处理函数中都调用了 m_wndscop.button(i)。部 分代码如下:Void CMyDlg:OnVoltplus ()(m_wndScope.Button (0);Void CMyDlg:OnVoltminus ()(m_wndScope.Button (1);省略部分BUTTON的消息处理函数Void CMyDlg:OnBplus ()(m_wndScope.Button (6);Void CMyDlg:OnBminus ()(m_wndScope.Button (7);在scope.cpp的button(i)中,用Switch语句来判断按下的是哪个按扭,并 写出相应的消息处理。部分代码如下:Void CScope:Button( int i )(Switch (i)(Case 0:/如果按下的是“IDC_VOLTPLUS”按扭,则调节波形的幅值(If (m_dDimY>=1&&m_dDimY<10)m_dDimY+=1;If (m_dDimY>=10&&m_dDimY<100)m_dDimY+=10;If (m_dDimY>=100&&m_dDimY<1000)m_dDimY+=100;If (m_dDimY>=1000)m_dDimY+=1000;Else if (m_dDimY>=0&&m_dDimY<1)m_dDimY+=0.1;Break;/鼠标点击箭头按钮控制幅度的增加Case 1:/如果按下的是“ IDC_VOLTMINUS”按扭(If (m_dDimY>1&&m_dDimY<=10)M_dDimY-=1;If (m_dDimY>10&&m_dDimY<=100)M_dDimY-=10;If (m_dDimY>100&&m_dDimY<=1000)M_dDimY-=100;If (m_dDimY>1000)M_dDimY-=1000;If (m_dDimY<=1)m_dDimY=max (m_dDimY-0.1, 0.1);Break;Case 2:/如果按下的是“ IDC_TIMEPLUS”按扭(m_dDimT+=0.1; break ;/则每按下一次按扭,时间增加幅度为“0.1”Case 3:/ 如果按下的是 “ IDC_TIMEPLUS”按钮m_dDimT二max(m_dDimT-0.1, 0.1); break ;/则如果当前时间大于0.1,则单位时间减1,如果不是,则当前时间取0.1Case 4:/如果按下的是“ IDC_AMINUS”(If (m_Amove>-60)m_Amove=m_Amove-10;Break;/则A的Case 5:(If (m_Amove<60)m_Amove=m_Amove+10;Break;Case 6:(If (m_Bmove>-60)m_Bmove=m_Bmove-10;Break;Case 7:(If (m_Bmove<60)m_Bmove=m_Bmove+10;Break;Default:Break;Invalidate ();3.2曲线面板的设计3.2.1位图资源及其应用位图是一种数字化的图形表示形式,是表示一个图像目标的系列数据,应用 程序使用位图能很快地将预先定义好的物体显示到屏幕上。位图中的每个像素点 有位图文件中的一位或多位数据表示。整个位图的信息被细化为每个像素点的属 性值。与设备相关的位图是与特定的显示设备相联系的,这种位图的位和显示输出 设备的像素之间关系密切。与设备无关的位图与特殊的显示设备之间的关系较松 散,这种位图表示的是图象的外形而不是位图的位与输出设备像素之间的关系。对于绘图或照片一类的位图数据量一般较大,因此为了提高显示刷新速度, 位图操作须在内存中进行。用于位图操作的系统设备环境为内存设备环境。应用 程序首先要通过调用函数CreateCompatibleDC向系统申请获取内存设备环境。 其形式为:hdcmem二CreateCompatibleDC(hdc);与设备环境相似,内存设备环境也有设备描述表。应用程序获取内存设备环 境后,调用函数SelectObject将位图文件内容选入内存设备环境之后,既可直 接在内存设备环境中操作位图,如绘制图形及编辑等。操作位图结束后,应用程 序必须调用DeleteDC(hdcmem)来释放内存设备环境。位图操作过程包括定义加载或创建,选入内存设备环境和输出。1. 位图的定义:定义一个位图句柄,其形式为:HBITMAP hbM;而在本系统中作者使用到了两个位图,首先要在Resource View中右键点击 “insert”,在弹出的对话框中选中“Bitmap”这一栏,“Iimport”相应的位图 资源。在“Bitmap “文件目录下,我们可以看到我们刚刚” Iimport “的位图, 这两个位图的ID分别为IDB_TITLE,IDB_TRACK2. 位图的加载或创建:应用程序调用函数LoadBitmap加载位图并获得位图的句柄,其形式为:hBm二LoadBitmap(hInstance,lpszName此外,应用程序还可通过调用函数CreateCompatibleBitmap创建位图。其 形式为:hBm二CreateCompatibleBitmap (hdc, nWidth, nHeight)在本系统中,笔者定义了两个位图,在Scope.h中声明了两个位图,声明语 句如下:CBitmap m_bitmapTitle;CBitmap m_bitmapTrack;在ClasssView中,在Scope类中添加成员变量,选择“Add member variable “,弹出添加成员变量的对话框,在对话框中可以设置变量的类型以及变量的访 问类型,如” public”,” private”,” protect” .如图所示:Add Member Variable?:Variable Type:°KCBitmapCancelVariable Name:m_bitmapTitleAccess厂 Public L Protected * Private图10添加成员变量在Scope.cpp的Scope构造函数中,笔者使用了 LoadBitmap()函数来加载 之前导入的位图m_bitmapTitle.LoadBitmap(IDB_TITLE);/加载"IDB_TITLE "这个位图m_bitmapTrack.LoadBitmap(IDB_TRACK);加载

    注意事项

    本文(人机接口设备.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开