可视化编程入门_第1页
可视化编程入门_第2页
可视化编程入门_第3页
可视化编程入门_第4页
可视化编程入门_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC++的可视化编程

入门冯耀霖1本课程简要介绍Windows应用程序的形式和在VC++集成开发环境下使用MFC编写Windows应用程序的基本方法,以使同学们对面向对象的可视化(Visual)程序设计建立一个初步的概念并掌握一些基本方法,为深入学习和使用VC++和其他可视化编程工具打下基础。

2主题

可视化编程概述

使用MFC进行可视化编程

常用控件及其应用

菜单设计

3§1可视化编程概述

●可视化编程的基本特点

●可视化编程方法

●窗口41.1可视化编程的基本特点

可视化(Visual)编程有三个基本特点:■可视化的图形用户界面设计■使用面向对象方法编程■采用事件驱动的程序运行方式

51.可视化的图形用户界面设计我们已经相当熟悉以下小程序:【例1.1】#include<iostream>usingnamespacestd;intmain(){cout<<"VC++是功能强大的编程工具!"<<endl;cout<<"VC++是面向对象的编程工具!"<<endl;cout<<"VC++是可视化的编程工具!"<<endl;return0;}

6【例1.2】#include<iostream>usingnamespacestd;intmain(){doubler;cout<<”请输入圆半径:”<<endl;cin>>r;cout<<”圆周长=”<<2*3.1416*r

<<endl;cout<<”圆面积=”<<3.1416*r*r<<endl;

return0;}

这是基于控制台的文本用户界面应用程序。运行这种程序之后,屏幕出现MS-DOS窗口,并且按照程序代码的流程执行,用户输入数据后即显示执行结果。78进行可视化编程,同样可以写出相同功能的程序,程序运行出现如图1和图2所示的窗口。图1中的窗口称为文档窗口,图2中的窗口称为对话框。显然,它们比MS-DOS的文本用户界面更为友好且方便。这种界面称为

图形用户界面(GUI,GraphicalUserInterface)。在非可视化环境下,图形用户界面的设计都需通过编写程序代码来实现,且在设计过程中是看不到界面的实际显示效果的。9VisualStudio支持可视化的图形用户界面设计。Windows应用程序的每个图形界面元素(如对话框、菜单、命令按钮、文本框等)都是可视的,即设计时在显示器屏幕上是可见的,且所见即所得。编程者可根据具体用户界面设计的要求,直接使用VS系统提供的标准工具在屏幕上“画”出各种Windows风格的图形界面元素,而不必为这些界面元素的构建设计大量代码,VS会自动生成这些界面元素的设计代码,开发人员只需为每个图形界面元素设置特定的属性值,代码编写只针对界面元素所要实现的具体功能。

102.

面向对象编程方式由于Windows应用程序的复杂性,从图形用户界面到整个应用程序,都是采用面向对象的方法组织的。Windows中的对象可以是所有的规范部件,如窗口、菜单、工具栏、按钮、文本框、以及程序模块等。

从用户的观点看,Windows应用程序有一个窗口,窗口上有若干菜单、命令按钮、图标等界面图形元素;而窗口背后是一些对应的程序。

从MFC的面向对象模型看,一个Windows应用程序可以拆分成许多功能独立的对象,各自负责不同类型的工作,其最基本的构成对象可以分为两大类:程序对象和窗口对象。11一个应用程序的执行就像一场舞台演出。应用程序对象是幕后人员(导演、剧务等),它们负责安排并指挥“演员”(窗口)上场,准备和调度各种演出“资源”(如菜单、工具栏、图标等)。从操作系统来看,具有“法人”地位的是应用程序对象而非窗口对象,应用程序可以占有CPU时间和内存空间,还可拥有演出所需的“资源”。

VisualStudio系统给每个对象分配一个句柄(handle),它是一个4字节长的整数值,是对象的唯一内部编号。应用程序通过句柄访问相应的对象。每个对象除了句柄外,还有一个对象标识符ID,可看作是对象的外部名。ID与句柄的区别主要在于:ID可以是用户自行设定的;而句柄是系统内定的,对用户是透明的,这能防止应用程序直接访问对象的内部信息。123.事件驱动的程序运行机制

传统的文字用户界面的应用程序都有一个起点和终点,程序中的各模块(函数或对象)的控制过程和执行顺序是在编写程序时精心设置好的,是预知的、确定的,整个程序的运行过程是明确的。这种程序运行机制称为过程驱动。可视化应用程序则采用的是事件驱动的程序运行机制:

事件发出消息,消息激活对象。即应用程序的运行没有严格的起点和终点以及固定的流程,各对象之间没有规定的执行顺序,即程序的运行过程是不明确的,而是由事件及其消息控制着对象的激活和程序的运行过程。对象通常处于循环休眠状态,当发生了某个事件并有相应消息传递给对象,才会按照消息的指示执行程序代码,一次消息的处理工作完毕后又恢复休眠状态以等待下一个事件的发生及其消息的到来。13

事件(event)是什么?事件的含义很广泛,简单地说,事件就是激活对象执行程序代码的一种动作。在Windows的操作环境中,无论系统产生的动作还是运行程序时用户产生的动作都称为事件。最常见的用户事件是鼠标事件和键盘事件。实际上,任何一个拥有设备驱动程序的系统输入设备(包括端口)都可以产生各种事件,发送自己的消息。

消息(message)是VisualStudio定义(WinUser.h头文件)的一种特殊的数据结构(MSG),它打包了“事件”发生的相关信息,例如:消息接收者的句柄、事件的类型和来源、消息参数等。14Windows系统有各种各样的消息,消息的传递无时不在发生,即使电脑闲置时,还会有系统时间的消息传递出来。任何一个看似十分简单的动作都会引发窗口之间许多消息的交换。在VisualC++中,

什么对象可以产生或接收什么事件,是由MFC规定的。例如,命令按钮有鼠标单击(BN_CLICKED)和双击(BN_DOUBLECLICKED)事件;文本编辑框有改变文本(EN_CHANGE)、接受输入焦点(EN_SETFOCUS)、失去输入焦点(EN_KILLFOCUS)、单击垂直滚动条(EN_VSCROLL)等事件。

15当在佩对象为上发宅生了黄某个州事件恩并发翅出了球相应膝的消擦息后敢,接剪收者聪对象孔就要梁响应百并处饥理该夹消息秋。每个灾需要诸响应叙的消折息要剖求对御应一苦个处雷理该阅消息麦的程背序——事件赴驱动释程序。响应良消息大就是怠启动礼相应碑的事投件驱塔动程赏序。Vi志su辫al着S狠tu施di种o中将呼响应睛消息仗的过兼程称河为消息逗映射。161.救2可视奖化编撕程方撒法使用VC屯++进行角可视幼化编壳程有滔两种锅方法淘:■基段于Wi逼nd概ow医s剩AP搜I函数喜的编雨程方森法■基尼于Mi欺cr众os画of亲t火MF爸C的编货程方致法171.基于Wi未nd惕ow椒s吴AP列I函数脉的编且程方盾法AP层I是应苗用程需序编黎程接睛口(Ap碰pl敞ic唯at醋io乏n热Pr瞒og隙ra吓mm诱in凉g亏In母te历rf约ac燥e)的秃缩写当,是Wi殃nd菜ow菠s操作胶系统拿与Wi烛nd湿ow属s应用乏程序颈之间标的标陕准接沫口。坏作为Wi涉nd荷ow明s操作凭系统惑的组腹成部风分(sh缝el绞l),AP荐I提供举了10忙00多个贝可供德应用秀程序艇直接昂调用始的C函数意(在Wi送nd肌ow词s年AP长I参考臭手册棋中有嘉详细貌介绍警),疮这些拐函数孔大致动可分圈为三叼类:■窗口宅管理羡函数:实将现窗部口的为创建现、移凳动和考修改弟功能既。■图形禁设备洲接口岔函数:实吹现与揪具体移显示喝设备纳无关银的图凯形操险作。■系统常服务和函数:实果现操冒作系彼统提您供的隶各种香实用站服务舟功能等。18使用AP晋I设计Wi侮nd保ow条s应用醒程序候,对绿于理心解和摆掌握脚面向雪对象楼程序穿设计滴的思涂想和站方法为是相朴当关并键的非,是愈想成钱为Wi致nd们ow萌s编程厦高手迅的必蔽经之央路。赴但它怀要求担编程罪者必削须熟完知Wi卸nd脏ow锦s应用烤程序傲的架甲构、标事件秆驱动哲以及献消息糠传递书等内祖部机题制,善并且竹仍然象必须列编写哑大量具代码叹,即赛它要拆求编历程者廉具备灶较高橡的专悟业素春质,共这对热初学之者来伪说无湾疑是舰比较自困难暴的。窗当然沸,使框用AP摊I编程柄更具恋灵活否性和仙个性跪化。AP琴I支持隙所有Wi照nd贴ow扮s应用循程序佳的开删发系侨统,如VC贡++、VB、Ja振va等。192.基于Mi期cr占os剖of引t焰MF夹C的编仇程方椒法MF绝C是微软控基础恰类库(Mi或cr欺os翁of跪t耍Fo言un榴da塘ti蚂on傲C凉la四ss)的级缩写毯。与AP蚕I不同够,MF护C不是Wi口nd傲ow艇s操作拴系统次的组渡成部亲分,逢而是筛微软巨公司暂专为VC捡++开发道的配鲁套软泪件包腔。与VC法6配套像的是MF碎C6夜.0。MF浓C充分渠使用洲了面负向对挂象方采法中烧的继迷承和伶多态呜性技伏术,吵以类师的方挖式封利装了Wi桐nd矿ow另s应用砖程序朋所涉厦及的膨几乎所谁有的川标准招部件誉,如Wi撑nd资ow复s应用灰程序棚的架构槽、各灿种标贴准的锹图形正界面季元素谱、其熔核心要是它以C+供+的形挨式封欧装了Wi拿nd智ow抗s韵AP押I的大锈部分还函数挎。20MF日C是一怪个很伍大的碍类层竟次体匆系(MF绿C6贯.0中包宫含了20拨0多个玩类)凳,它别由一井个称鉴为CO勇bj选ec庄t的类货作为粥根基介类,蒙其他装类大毅部分弄从该讽类派怨生而茎来,津其整国个类钓体系春可大蹄致划航分为藏:■基类■应用同程序浇框架折类。包括摊:应晓用程述序类夫、命介令类趴、文桨档/视窗虹类、句框架筛窗口床类、靠文档遵模板坑类等■可视遥对象蛛类。包括朽:窗构口类店、对彻话框附类、揭控件旦类等■绘图勺类。择包括浸:绘门图工舒具类与、设杂备描乒述表声类等食。■简单但数据眯类型汉类■通用政类包括阁:数轰组类窜、类谨表类剩、映怕像类■文件游和数偷据库溪类包括程:文辰件I/刻O类、OD览BC类、AD忧O类■In乱te码rn知et和网乳络工物作类包括摆:Wi狭n3苍2春In冈te聋rn艳et类、Wi毕nd能ow意s绘So销ck竞et类等■对象潮链接颜和嵌懒入(OL贯E,纽奉O卡bj店ec恩tLi迟ng陆ki甩ngan阔d膏Em胞be涨dd粉in扬g)类■调试吵和异爷常类21事实阿上,MF无C封装饿了一圾个Wi折nd签ow宅s应用酬程序部操作窄的每殖一方谨面,田因此融使用MF恶C编程群,编沉程者唇可以乳把注敬意力御集中兆于自亩己程芬序所燥特有咸的部图分,抛不需短要事海事亲雷自动薄手。透与直蜘接调泰用AP萍I函数劣相比富,这弯将大双大减丝式少编抱程者崇编写语的代锋码数眠量,银使编勇程工滩作变概得更澡容易须;同饿时,潮程序蜻标准坑部分懂由MF愧C的类薄来提探供,组可使布程序睁变得躬更规颈范,痕更具悔可读钟性,蝴效率录也更奴高。对编替程新辽手来亚说,MF集C的最从大优禽点是汇它以酱高效损简洁年的方疗式为滔编程手者做点了所候有标护准部状分的昨工作展,特核别是粉编程其者可次以在尼不需柿要写挠一行暗代码姐的情俱况下你完成奥一个钻完整距的应诉用程序忆架构(约笋需千长行代圆码)袖。MF识C中包隙含了史成千上描万行辫功能缝强大丙的、铃经过委优化夹的Wi绞nd庭ow栽s程序顷代码鸡。编隐程者抵只要繁定义摆了某叙个MF顾C类的顿对象蹲,就窝可以祖调用敏该类姜的成与员函或数,欺轻轻薯松松途完成遗本该讲由你唱自己丑一行邻行编饿写的预程序鹿代码论。从熔这点猎上说委,MF葬C极大熟地降牛低了走程序倒开发房诚难度穿。221.执3窗仔口窗口是Wi家nd饿ow循s图形乞用户巾界面蓬的最树基本姿和最湖重要魂的部勒件,袖每一覆个Wi怖nd帽ow丑s程序嫌至少梳有一含个窗拒口。抗故Wi遗nd吵ow营s图形索用户悬界面坡也称悟窗口胶界面慕。231.框架永窗口框架口窗口吨是应做用程抬序的冈主窗协口,削负责娇管理贯其包除容的锯其他歪窗口痒。一择个应虫用程唇序的狱最顶仁层的每框架胖窗口旷是应位用程鲜序启颂动时起创建拉的第惠一个散窗口妥。MF辅C提供炒了由补基类CW奶nd(窗鲜口类嚼)派或生的4个框映架窗之口类掘:CF惩ra应me券Wn溉dCM制DI辆Fr亲am刊eW迎ndCM泼DI扁Ch前il驱dW觉ndCd副ia垃lo愁g用于仰支持列三种品标准绩框架朽窗口格:24■单文风档(Si探ng惜le驳d旦oc荐um燃en歌t)窗愉口由Cf炸ra挤me射Wn拆d类支公持。天文档所窗口昏主要界由边据框、呀标题洁栏、头菜单笨栏、垦工具怖栏、碎编辑抱区等药组成浆。■多文泊档(Mu沉lt铃ip躬le扑d申oc塔um途en钟ts,MD闭I)窗腹口由多能个文跑档窗膜口组异成,同其中峡第一却个打究开的优是主册框架痰窗口犯,由CM捐DI重Fr动am卖eW粥nd类支嚼持,智其他柜为子发框架端窗口欢,由CM享DI现Ch格il哭dW期nd类支倚持。挠子框财架窗助口没傲有菜爸单栏和工学具栏裁,它护们共订享主冈窗口斤的菜钉单栏播和工显具栏皱。■对话纤框(Di萌al垮og)对话烦框是封一种酷特殊垫类型否的窗跨口,底它没铜有菜夜单栏谷和工摊具栏铲,且引一般循不能窄改变禾窗口咬的大寇小。牺对话同框由Cd仆ia删lo认g类支惭持。252.对话麻框与掀控件对话悔框是应拣用程你序用娘于显征示或及提示骑,并旺且等州待用料户输膜入信兔息的晓弹出译式窗枪口。对对端话框他的操盆作一论般是绪通过历在对占话框某上添遥加控破件来迅实现拾的。对话译框与壮控件总密不诱可分递,在岩每个呀对话执框内螺都有唉一些伞控件座,对冒话框豆依靠窑这些归控件喊与用止户交讯互。可滚以说搅,对阳话框刚是Wi扰nd可ow恒s应用妙程序凉中最述重要泽的用溪户界毅面元灭素,滴是应达用程疾序与双用户掉进行稀交互争的主寻要部滨件。控件Vi筝su客al苍S药tu吉di道o把主盘要设滑置在冰对话计框上远的一些肉标准姿的图羡形界蒙面元艇素定至义为控件(C有on踪蝶tr挨ol摄),如哑文本碗框、轮列表慢框、成命令调按钮卡、复序选框维等,它们踩中的膝大多暖数可穿以捕材获事划件并雹向对喷话框托发送老消息侦。控悄件实们际上杆也都撇是窗辟口,所有亚的控裤件类尖都是CW引nd类的如派生匠类。订控件庙通常欲是作递为对右话框留的子剖窗口安而创抱建的辅。Ov供er26§2使用MF虹C进行型可视惧化编乳程●建立弊项目师架构●设计哥图形哥用户内界面●设计惜对象絮的事跳件驱感动程浴序,烈编写拦相关帐代码●项目斧的编望译、患链接众和运雨行27Vi柄su墙al精S悦tu晒di骡o把开玻发一粘个应故用程但序的闪过程疫称之我为“项目”(Pr挖oj蔽ec传t,很掉多人弃把它扰翻译抖成“工程”)瞎。开煤发一号个Wi户nd子ow侦s应用笋程序肚的项湖目远超比开纯发一气个控站制台盒应用爆程序懂项目光要复滤杂得眠多,柄工作纷量也疾要浩朵大得肚多。治好在Vi祖su誓al台S搁tu素di逝o提供羊了一亡组强然大的MF阔C项目油的开物发工覆具。开发尚一个MF趁C项目触通常嘱有四卷个步岩骤:St煎ep膨.1建立梦项目捡架构St酬ep怠.2设计笔图形迈用户准界面St剃ep淘.3设计搜对象杜的事优件驱冰动程宝序St敞ep穴.4项目分的编躲译、票链接词和运位行下面灰结合仔一个贩简单左的编劲程实寒例(Ca肺se丹1)“瞒计算冰圆的锻周长虫和面注积”龙来介劫绍这师四个辈步骤柱。282.步1建立吵项目警架构建立项目架构载(sk曲el旅et铅on),获类似钱于一党个项功目的娇总体巾设计迈,它智需要粪确定项目的类拾型,屈根据项目类型呜创建膨并组偿织各姻种基真本组贪件,枣包括桂:所丈有的言类、蚕一些聋基本赵对象樱、项目所需企的必怜要资巡寿源等蓄。从诞而为项目搭建湿起一致个完恒整的武架构危。29所谓暴项目刚类型锅,是津以项植目采岩用什惠么框埋架窗照口作腥为主基窗口竭来界肠定的似。MF萄C支持咳三种未标准酷项目段类型筋:■单文脏档(Si凳ng治le漏d喇oc殃um签en肉t)项响目以单诞文档劲窗口蛇作为置项目因主窗普口。■多文诱档(Mu逮lt屯ip炒le厘d蒙oc匙um脑en庙ts)项量目以多书文档杜窗口脉作为该项目悼的主型窗口巾。■对话肌框(Di冠al蒜og根b间as骆ed)项鸟目以对姿话框谊作为皇项目据主窗介口。律这是浆最紧彩凑、最简薄单的落一种馅标准鸣项目辱架构乒。30VC沉++为用待户建迎立项目架构吓提供照了一饮个强晶大的荷工具——MF蒙C糕Ap睡pW弦iz曲ar兵d(MF馅C应用蛙程序厘向导鲁)。本实尾例采找用的覆是对栗话框能架构化。31操作纵步骤1.选择VC拥6主窗齐口菜棒单栏仪中的旁“文寸件|经新建鲁”菜季单项杠,弹尖出一薪个如递图3所示赠的“新建”对府话框别。2.在对棍话框泡中选武择“侵项目啊”(pr糟oj讲ec讲t)选金项卡禾。选鸽择MF啊CAp惑pW捧iz诊ar疾d[抽ex狡e]项,匀在对雷话框役右部顺输入方项目样的路赤径和疼项目拒名,洲然后托单击纸“确禁定”疫按钮哈。VC差++以文烛件夹称方式迷管理锐项目圣,如翻图3所示,ca销se农1是D:所\C夜PP认MF暗C_楚PR恢J\下的盏一个纲文件斑夹,作该项朵目的各种祥文件劣都将担存放豪在这航个文疫件夹昨中。3.在系擦统弹怪出如芽图4所示罗的“MF劈燕C应用鞭程序养向导羽-步急骤1”对话何框中席进行隆项目烈类型利选择暑。先技选择摧单选谈按钮催“Di粥al公og散b弃as扒ed”(对态话框织项目转),蒙再单鹅击“秘下一浮个”犯按钮累。324.依次毛选择软系统详弹出泪的图5至图7(步霜骤2至步锋骤4)中邻对话垫框的乓选项络,用匆户可拐以先班全部则采用漠默认草选择犯,然堂后在闯编程固过程昼中再傲按需参要修接改。垫单击出图7中的奔“完煮成”染按钮泳,或街者在璃出现究其中锤任一闪个对挑话框驴时单船击“症完成摔”按测钮,仔表示来默认唉其他弃选项来,系访统就覆不再贵弹出价其他肚对话衔框。5.系统米弹出粥如图8所示絮的“册新建摔项目害信息偶”对阁话框长,其丈中列暑出前秃面所掉做的掏选择啄内容型,单爸击“希确定脖”按子钮。至此切,项目架构舞创建序完成敢,系颤统回饼到VC倦6的集成肤开发状环境租,如图9所示怒。从该烛窗口赵的左卖窗格俯的各足选项海卡中留可以缴观察副到MF童C堆Ap飘pW竭iz蹄ar扒d为一魔个对裕话框项目的架花构创勇建的馋所有怨组件精:33■CC阳as旧e1刻Dl掏g等三个个类其中境最主倡要的沟是CC免as票e1程Dl膀g类(项目ca揪se您1的对谦话框董类)习,它她由Cd细ia袜lo乓g类派衡生。34■ca醒se撒1D坡lg傻.h等四殊个头勺文件ca靠se良1D侄lg源.h是最霜主要薄的一扶个头暴文件抽,它买包含观了CC抗as象e1尼Dl柴g类的测声明膛。35■ca颜se喷1D压lg冷.c羽pp等四皇个C+撒+源程促序文漏件ca盲se却1D樱lg抵.c米pp是CC错as劲e1留Dl追g类的关实现欢,它权不仅榜是最服重要青的源将程序粮文件锹,而学且是减整个项目的核见心。匀用户南的编放程工兴作主鱼要是淘在这瓦个文输件上欺完成暴,它腾将包源含实阁现具减体应破用功死能的转全部继代码陆。ca克se笑1.潮cp念p是项目的启动泳程序岂,类浩似于河非Wi米nd津ow鸽s应用山程序霸中的ma比in函数管。36■另俭外,MF童C宾Ap颤pW参iz敞ar沸d为项目生成称了一般个对吐话框严窗体域、一若个项目图标睛、项目版本协等资际源。37至此寄,虽乳然一劣行代橡码都写没有妈编写矩,但养这个圆应用递程序兆架构挠是可卖以运绍行的焰程序访。进件行编趁译链券接后慎,其颈运行坐结果卵如图10所示司。以如这种齿方式屈建立烈的应所用程办序,怜其主苍窗口鞠即是怪对话猫框。图10元.对话点框项穴目架齐构的底运行叠结果382.窑2设计饺图形它用户充界面●设计夏工具判与设啊计方油案●操作毕步骤391.设计饶工具昨和设伞计方茂案在完泉成了苏对话牲框项总目架段构的讽创建令后,VC话6窗口爽上弹殊出了MF忠C的对易话框脑编辑稍器(图11)。对话付框编释辑器码主要背用于驳创建评、编何辑对付话框车窗口欺,向污对话迁框窗木体上赶添加芝控件边和调学整布隙局。斗对话辞框编瓣辑器海主要裂包括换如下仪组件睁:对刺话框虽窗体涌、控股件箱烟、调唐整(盏布局约)工悉具栏枪以及溜对话却框和姜控件凡的属伪性对畅话框柜。对话博框窗叨体是MF墨C给每借个工籍程默贞认生姨成的钞一个图膨形资地源,体它是CC蛾as僚e1轨Dl控g类的遭图形旬化。所谓扇窗体转即窗所口毛劣坯,挖是还药未完么全成伴形的柱初始窗匠口,夺它如材同一具块“骆画布缝”,敞在它隶上面拐可以察画上逼各种控件犹来构尊成项迅目所跟需的机实际苍窗口织。窗稳体的傻标题冠栏上释显示灿的是虽本项贞目的躁名字塑,窗粒体上乔可设橡置网豆格,堆用于导安排熄控件跟的位咽置和毅大小狱。在役程序阵运行垒时,久网格爷会自顾动消吵失。40控件晒箱,MF冤C设计土有20多个怎标准返控件横类,弄每个定控件驶类就腊是制篮作控肃件的什工具删,控秘件工怀具箱腿,简渣称控件死箱(图12)是炒存放虽控件皆类的营容器蜡,这跪些控婶件类诊都以丧图标购式按戒钮表助示。择开发老人员恭可利叠用控旬件箱桶在对文话框辈上创芹建各坐种所异需的舞控件声。将控漂件箱功中的填控件僵工具椅复制侄到对云话框壤窗体团中,罚即在拒对话冤框中察创建惜了相律应的披控件触对象,这笋可通旗过可础视化依操作辨实现年:■方法1:用指鼠标追按住填控件愤箱上凑所选鸭中的苍控件选图标伐,拖雕到对碰话框穗中合罗适的融位置亮。或■方法2:先猾单击胃控件笨箱上萌所选薯中的营控件膀图标亡,然后起移动干鼠标纸到对结话框性中合辣适的包位置捧。复制虹到对割话框型上的劣控件齐,可溜以移醒动、宣复制贵、调郑整或删芬除,域也可参拖动馅鼠标禁缩放辣控件甩的大容小。41对于呜本实偿例,彻可在傻对话夏框上吴建立竿如下后控件淋:■1个编当辑框:用蕉于用奸户输揭入半公径值催;■5个静盆态文典本框(静众态文耕本框亮只能愈显示脂文本达而不惰能输杨入文构本)庙,其览中:2个静偷态文截本框跟分别弱用于惑显示务圆周第长和慢圆面介积,其余3个静可态文希本框卵分别袜用于煤对上孤述三涌个文愤本框消进行塌文字侵说明满。■2个命踏令按蒸钮,“师确定轨”和烧“退电出”牢:恒前者川用于确定帐输入踪蝶值,刃计算鄙圆周促长和建圆面汁积,伟然后惰把结果乘显示薪在对残应的旦输出浪框上章;后萄者用废于结圾束程序曾的执资行。效果亡如图2。422.操作盒步骤(1撒)设置币主窗怕口的嫁属性闯值单击宜对话陶框窗拒体,乎使其茄成为欣当前员窗口裂(周姜围出杆现8个小芳方块型)。从VC傻6窗口才的菜侮单栏湿上的洋“查厅看”弄菜单青中选顺择“思属性患”选啦项,贱或者猴用鼠李标右恢击窗糕体,焦从弹微出的该快捷社菜单玩中选农择“恶属性喘”,器都将冶弹出慎图13所示睁的“对话心框属择性”对肤话框熔。在“颠常规鸟”(Ge咽ne起ra票l)选泄项卡素下:该对抵话框膛对象繁的ID默认捷为:ID抓D_按CA罚SE旬1_灿DI确AL玩OG将标虎题值凤设置为为:计算搜圆周刮长和两圆面当积单击姻“字庆体”础按钮他,进声行字月体属而性的考设置其余哥属性商采用处默认胶值。关闭娱属性奸对话锅框。※上述虏设置社在CC苍as塑e1第Dl村g类的渴代码农中立铲即被闻反映亮。43(2烦)添加捕编辑泉框控愧件用鼠航标把王控件梦工具眉箱上晶的编线辑框踪蝶拖到值对话餐框窗鞠体的邪合适离位置挽,就合建立准了一桐个编忧辑框江控件停。用鼠说标右陆击该偷编辑森框,赛从弹齿出的依快捷育菜单攻中选串择“耀属性患”,务弹出违如图14所示师的编辑色框属野性对位话框。该编眨辑框飘对象默的ID默认箭为:ID场C_腐ED墙IT订1在“浆样式辆”(St笋yl土es)选滴项卡贵中设俊置相倚关属雅性值顶为:妇“靠左”(Le潜ft)和绢“垂直汤居中”(Ce侮nt炕er)。其余堆属性蛋采用酿默认咽值。关闭胡属性鄙对话细框。44(3则)添加糟静态若文本日框控礼件用鼠婚标把足控件枪工具亡箱上倚的静耀态文童本框抱拖到疲对话殃框窗趣体的窃合适迈位置仍,就瘦建立参了一屡个静蛋态文世本框穗控件冶。用蚕同样测的操迹作(压或复筒制)绳建立拴其他候四个咽静态弄文本记框。用鼠俩标右奴击静傅态文寒本框帐,从尸弹出柴的快扯捷菜扬单中馒选择躬“属权性”市,弹枝出如享图15所示兼的静态膏文本殖框属刚性对话陈框。可对漂这5个静问态文召本框电的属笨性值丑设置矩如下蹈:ID标题主其他使属性--暴--递--傅--魂--川--仪--束--诞--评--匠--做--完--重--孟--浪--谁--搅--欣--裳--业--花--牧--卖--形--马--储--而--幼--宫--欺--悄--净--脖--金--炭--距--尾--址--斥--弃-ID滨C_垃ST矿AT娘IC崇1输入葡半径:居中退,垂球直居闭中ID冶C_垫ST挑AT捎IC俩2圆周予长须居中贡,垂五直居对中ID当C_著ST黄AT料IC后3圆面强积铜居中器,垂途直居症中ID依C_鹿ST恼AT于IC逢4默认断靠左临,垂冲直居素中,Cl狱ie躺nt追e违dg喷eID亩C_外ST龄AT的IC摊5默认贤靠站左,仪垂直程居中,Cl底ie担nt团e陪dg撇e其中汪,ID众C_胡ST缺AT挠IC舱4~饿5作为稻结果稍输出花框,且分别啊显示滴圆周延长和扶圆面座积;ID埋C_报ST汇AT尊IC愧1~蝇3分别算作为丢输入骆框和逗输出世框的忍文字伍说明哗。45(4律)建立惭命令冶按钮尺控件建立2个命魂令按缎钮,张它们息的属逆性值变设置嫁如下耕:ID标题--福--并--哑--关--燃--外--恋--耐--负--凉--跑--龙--恼--合--规--麦--忧--暑--嫩-ID薄C_今BU兄TT悄ON羊1确定ID辞C_撒BU竖TT皆ON快2退出--大--百--床--丑--猫--储--泥--汗--患--好--索--任--集--保--喷--叶--赌--厨--榜-至此再,控巴件在栏窗体值上“锣摆放密”完射毕,姿可以挥用鼠童标调整扭它们食的大序小和扔位置暗,也患可以迫用调齿整工鸟具栏调络整控当件之圈间的铅对齐热方式杆、分毕布、却大小势规格违,以未及测斥试效肝果,晒设计厅好的粮图形勺用户扮界面误如图16所示谎。462.辜3设计箩对象耳的事婆件驱挡动程吩序●设鞠计的疑工作延和方弃法●设铲计工聋具与喉设计截方案●操辫作步箩骤471.设计朵的工掠作和可方法对象端的事航件驱题动程推序在VC沙++中称浪为消息酸处理绿成员诸函数。对兵于对辽话框疼工程迈,作宪为工核程的民主界迫面,财对话幻玉框对德象需营要响鹿应并刊处理残所有照的控蔽件消浸息。荐设计述对话灵框的波消息判处理乘成员棋函数槐的工霉作主目要包百括:■确贪定各兼个控久件要座传递盲的数歌据;■确摊定对振象的爱消息扰映射伤,即以接收镇什么趴消息斑,建抢立什么游消息熟处理夺函数补;■在荡消息忽处理浴函数健的函坦数体悠内添抓加代樱码。48在实疯际应困用中榨,读矿取或兆更新愚控件苹上的蜜数据样是对偏话框突的非仙常重泰要的顿工作贺。MF大C为此业提供养了一雄套标燃准方栽法:DD冈X(Da除ta总E刮xc破ha芬ng缸e,数擦据交盘换)察和DD愚V(Da滥ta弟V腊al慢id骄at疏io元n,数霞据校谁验)高技术睁。DD抢X通过成员访变量(me马mb定er岩v细ar携ia所bl蔑e)的惠方式当实现触对话扮框与面控件安之间期的数堵据传沫递。如果足要在露对话嚷框的近消息挑处理趟函数品中访喝问控拆件上肿的数拥据,血就必母须先芒在对如话框塑类(CC新as守e1填Dl肿g类)中分知别为裤这些蜓控件俭添加(声组明)着一个杨成员阔变量浴,每一这个成伟员变物量绑定折一个蚕控件。在廉消息伙处理休函数峰中是脾通过成员樱变量形访问园控件略的。49成员勇变量倾是对孔话框出的pu程bl贪ic数据蜜成员拘。有捆两类粮成员宿变量御:■Va自lu桂e类成鹿员变恒量:乱表示油该变昨量的腾值为血控件匆的数颜据。■Co砌nt吗ro唉l类成峡员变取量:烤表示唤该成里员变船量就薄代表趋控件笛本身迈,即单它是键控件播的一谎个对倚象,路其值傅实际粥上就颠是控质件的桃句柄渔。DD染V用于插数据冷的校吊验,领例如查自动驳校验壤字符维串的介长度很和取脂值范劈燕围。50使用MF牌C抬DD落X/日DD久V的流墙程是烂:①首苍先定盘义用材于接楚收控傍件数碍据的定成员友变量应。例或如,兆为编软辑框ID荡C_凉ED剩IT咏1定义逢一个Va压lu测e类的do然ub救le型的未成员鲜变量羞,用浊于接背收用台户输坡入的良半径之值。捎定义鲜变量奔的同酿时可享以设妹定数逼据取愉值范页围,敢提供煌校验轨。②然乏后,惠在对捞应的龄消息雁处理座成员字函数遍中调宾用MF碌C函数字传递你数据凑。最稳简单骂的相宿关MF颠C函数凝有:Up准da株te淋Da傲ta()//更新撑成员搭变量冻,将喘控件抛上的堂数据句传递院给成欲员变附量Up鸦da霸te倍Da储ta泉(F各AL围SE)//更新裕控件奔,将亭成员蝇变量灾的值评传递欧给控堂件512.设计饱工具疗和设唉计方绑案完成欠上述鲜工作爪可使状用VC校++提供幼的一苏个强脾大工品具——MF坊C生Cl谷as妹s郊Wi冈za与rd(类带向导侦)它主倾要是坦用来夹管理察项目呜中的秤对象忍和消允息及趋其消馆息处立理函挽数的卵,是MF抚C编程兼必不规可少瞧的重旷要工域具。52对于嚷本实谁例,丑可设扣计如格下成斧员变假量和羊消息纠处理贴函数睬:■为教编辑汽框ID农C_字ED泡IT劣1定义腹一个do古ub锅le型的除成员鸣变量m_泉r,用恼于接犯收用享户在微编辑管框中影输入孔的半椒径值顿;■为赖静态年文本兄框ID雀C_毙ST改AT劫IC赞4和ID炭C_脂ST包AT访IC狼5分别肢定义煤一个Cs垂tr睬in拘g型成平员变俩量m_注gi逗rt凑h和m_宅ar甲ea用于悔向静像态文裂本框搁传递跑计算苍结果蛙。静态应文本宵框只碧能处艰理Cs盆tr腊in详g(字拾符串月)型倒数据。注意静:成怨员变签量名液的前阴缀“m_史”是MF各C的风扁格。MF嫁C也有萝自己笛的数联据类败型,慈不过蹲与C+暗+很相初似,透容易遣理解浙。■为昌“确赏定”鹅按钮谣建立私一个段“单驻击”(BN睛_C逢LI装CK请ED)消卧息处慨理函欢数,原用于计算塌圆周童长和亦圆面系积,挎并显附示计泼算结瘦果。■为等“退毛出”毫按钮康建立巨一个粪“单衡击”佳消息栏处理词函数抚,用蜜于结肌束程滤序的洋运行雄。■建嚼立一颜个对直话框惩的初抖始化俘函数问,对水成员油变量m_湾r、m_袜gi饿rt县h、m_杆ar念ea进行晶初始殿化。532.操作原步骤(1遗)添加烧成员挎变量打开躲“MF坦C差Cl屈as皇s盟Wi糟za售rd哀”(类枯向导果)对红话框病,如图17所示棉。方捎法可旁以是御:从VC坑6窗口熊的菜羡单栏等上的正“查很看”病菜单削中选织择“窝建立骑类向伐导”反选项仪,或次者用衫鼠标扔右击安窗体机,从德弹出筐的快仔捷菜昨单中异选择茅“建追立类独向导修”,荡或者争按快叛捷键Ct委rl狗+W。选择尸“Me秧mb还er云V仍ar事ia贴bl呈es市”(成厨员变柳量)刺选项汤卡。劣从“Co甜nt牵ro纵l解ID织s”(控现件ID)列篮表框庄中,害可以捉看到已经快建立稠的各角控件肃对象升的ID。为编漆辑框双添加码成员字变量炉:选哈择ID驼C_有ED亏IT新1,单约击右边弓的“Ad谁d照Va割ri畏ab玻le供…”(添剧加变勺量)燃按钮皇,弹腥出如图18所示签的“置添加敞成员优变量肝”对田话框54在第含一个府文本纺框(Me告mb材er群v撤ar只ia初bl胳e酒na所me)中悬输入荐成员绸变量煌名,勒如m_族r;在第欧二个谈下拉娇框(Ca赵te骗go哑ry)中劳选择钉成员利变量肝的种菠类,Va骂lu软e;在第丈三个赴下拉忌框(Va蜜ri选ab匀le态T葛yp悔e)中悬选择耍成员知变量鸭的数纱据类章型,do功ub滋le。单击OK按钮厨。回选到“Me志mb温er就V彻ar聪ia鬼bl殊es族”选项充卡,姿设置池变量m_捉r的取盏值范轨围,谱如最依小值淡为0,最柜大值柱为10梨00那.0。用同充样的沟方法好为静赴态文锯本框ID厕C_滔ST惹AT好IC时4和ID纤C_奥ST咏AT经IC访5添加Cs司tr胡in雕g型成约员变穿量m_耳gi均rt差h和m_林ar风ea,最镜大字昼符个冰数为10(图19)。55(2堤)编写邮消息原处理叮成员泳函数①主窗胖口的个初始警化函虑数切换柔到类颜向导布的“Me陪ss案ag渴e椒Ma秧p”(消泪息映列射)欧选项认卡,索如图20所示恶。在“Ob局je贯ct古I疾Ds民”(对盘象名拨)列磁表框随中选达择主论窗口河的对包象名CC结as监e1模Dl蚁g;在“Me大ss这ag上es权”(消湿息)椒列表册框中籍选择扩消息WM隶_I碗NI船TD美IA培LO滔G;此时稻在“Me配mb娱er再f育un信ct民io砍ns腾”(成误员函解数)列表慈框中疑会自泻动指骄出相谎应的MF糕C已定辜义的虚函兆数On粒In出it闻Di睛al中og。(携主窗岂口对奔象是速由MF北C默认先生成姿的)56单击谁“Ed扑it馆C瓜od晌e”(编竖辑代哨码)拉按钮订,弹戏出Ca镰se锄1D菊lg舍.c挡pp文件永的编贱辑窗雀口,谱并显马示On巡寿In盒it丹Di疾al蚀og()函数究的代菊码清衬单,债找到霉注释满提示勒处://脾T芝OD渐O:丧A斥dd凑e免xt扎ra急i纯ni经ti推al称iz箩at妥io亚n海he锻re(在所此下鹅边添物加你接初始蓬化的猛代码丘)对于葡本实悉例,河可添衫加如谜下代责码:m_灭r=0层.0伍;m_付gi腐rt眯h=m_俩ar漠ea="愉0.玩00脸0"宇;Up遭da效te溪Da炒ta肾(F驳AL醉SE);//将数培据传愿给控陵件并猴显示57BO比OL僵C上Ca巾se界1D倡lg铃::批On捉In季it竭Di挨al躁og杏(){CD贩ia惊lo船g:交:O默nI查ni险tD士ia扫lo皆g()予;……幼……泳…//跳T它OD蔽O:稠A匹dd印e秀xt夹ra稀i件ni糠ti着al诱iz诱at相io嫩n姨he重rem_告r=0反.0盐;m_侍gi谊rt办h=m_暴ar抵ea="岩0.毫00昌0"来;Up伪da培te照Da全ta席(F趁AL坐SE);//将数园据传防给控乏件并品显示re仓tu超rn辅T育RU参E;//拿r津et摧ur燥n信TR内UE辽un最le功ss哈y篇ou阵s艰et垄t申he旁f避oc香us鬼t均o蚊a摘co亏nt交ro构l}58②“确算定”趴按钮挤的消客息处耳理函抵数类似老上述往方法顺,在“Ob掏je睛ct涛I吃Ds狠”列表谣框中捆选择ID摔C_环BU苏TT少ON遇1;在“Me到ss朗ag蜂es汤”列表技框中应选择匹消息BN竖_C忙LI但CK辱ED;单击杰“Ad滨d曾Fu戒nc罗ti剩on税”(添值加函玩数)税按钮同,此团时在圆“Me逢mb垄er明f闸un仆ct双io旧ns泡”列表弹框中芬会出乎现一那个新佩的函凡数名On热Bu岗tt鹿on商1,表岭示系体统为浊该对良话框盟生成动了一皂个新麦成员袜函数乌(图21);单击浓“Ed碎it叶C矿od馒e”(编拳辑代斯码)很按钮租,弹面出Ca瞎se雕1D沈lg名.c贿pp文件臣的编弄辑窗粘口,并显别示On脸Bu抖tt均on衬1(按)函数启的代万码清恭单,找到敌注释匀提示顾处://淹T迈OD盐O:跳A彻dd桌y厅ou触r估co办nt痛ro辫l容no千ti厕fi效ca猫ti胞on哀h翼an挣dl木er赚c磨od迫e途he瞎re(在忙此下阵边添略加控框件消渠息的弱处理沃代码晒)59对于晚本实纳例,贫可添练加如乎下代尿码:Up坏da育te歇Da耳ta()监;//将编歼辑框疯的数严据传坚递给只成员锡变量do炊ub冠le将g弓ir钞th翅=2悼*3熔.1子41筛6*m_姥r;//计算伶圆周咬长do姿ub口le狱a浴re连a=蚂3.征14压16脚*m_筒r*m_赏r;//计算鲁圆面梅积m_配gi相rt茧h.晃Fo沃rm蕉at越(“扇%1柔0.唉3f晶”,沸gi便rt凳h)永;//按格猪式写讽入成汇员变股量m_梨ar处ea权.F租or保ma请t(奏"%线10锅.3可f"窃,a德re构a)亚;Up队da岭te眯Dt敬at歌a(塌FA点LS善E);//将数垦据传尊给控彻件并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论