VisualC++面向对象与可视化程序设计课后习题部分答案(第三版)_第1页
VisualC++面向对象与可视化程序设计课后习题部分答案(第三版)_第2页
VisualC++面向对象与可视化程序设计课后习题部分答案(第三版)_第3页
VisualC++面向对象与可视化程序设计课后习题部分答案(第三版)_第4页
VisualC++面向对象与可视化程序设计课后习题部分答案(第三版)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、 第三章Windows应用程序B+Windows編程中窗口的含义足什么?解答:窗是Windows;用揑序中的基車採作单元,是应用程序和用户之间交直的接口坏境,也是系统管理应用趕序的卅本单位编写一令Windows用程序首先应创建一个或第孑窗I心隧后应用程洋的运行过程即是窗UI内怫s窗口与窗口之闸、窗口与系统之间进行数抵处理利数抿交换的过程。BW1爭件嗨动的特点是什么?懈答:Window操件是建立在韦杵驱动执行程序芯础上.与利用白顶向下没计和执疗【时转统过程式编程疔武完全不同。在便用術向过程的编程.方式时,程JTJ笈苦是处j:完金支配狀态口程序执行的流程遵从程睜员预先规定的路轻而而向对象的Wind

2、ows程序的执行顺序则取决于事件利消息的岌土顷序.所谓消息是描述事件发生的怙息。当我们单山一个按钮时系统就产生一条特定的消鼠衷水此按钮乎件的笈生.程序购执行顺序足山顺序产住的消息羽动的,所以匪向时躱的WindowsIf的设计巫点足编骂事件和洎息的处理程胖程库口町以根据泊急类电貓写甩序以处理挨堂的涓息,或潸发出H也消恳以驰动其他程序,但是不必越先确定消息产生的次序.事件驰动的这些持点对r编写交互式时程序狠有用处。B国Wkidawi应用程序中购消息椅递足如何进行的?请举例说明.解答;Windo郴対.应用程庁提供称为消息肌列的保圉区。ItWindowstX及由共他阪用程序向用户的痕用程序发毘的全部涓

3、息都存傣在此歐列甲等特谓用.SDK程序以特定的循环调阳Windows消息,称対消息循环,如下代码表示北循环一直运序接受终止执行消息肘才停止匚while(GetMeESage(&msg30t0.0)1imnslutt:Nlcahae(-uiagDispatuhMBSiSae(&m5.g):在while循坏内部川踽环的毎枚迭代洞用WindowAPI昭数GctMcssagc(0,00)以得到消息队列中的、一个消,氐并把它存左將定的MSG蜡构休变就爼卷中TtanjilaleMessage(实规键盘上某牛键的釉译-DispatcliMessaged民巾糊圈数向窗I的涓息处理惓数发送消息、倜用相应的消息处

4、理宙数.宣成后进入下一个循坏.例如,如果和用户单卄鼠标的左键.亲统将駆送一条WMLHUTTONDnWN消息到该程序的幫息队列,在消息循环中由GetMessage(裁如J)函数得刮此消息并把它存储在MEC姑构协变忻m卷中:然后调用TranshiieMesge(Aimsig)数如果不是筆盘捎息.则此凿数不做任河竝理,接着调用3幼叽少NR艶洋(&巾卷)附数将此消息发送至消忌处理函数MuiProCn在消息处理曲数中执行相同的消息社理程序;然后逬入銀F个循环。匕也旬稱的作用是什么?请举例说明解答:句柄是应用程序中用来标识対象的一个轄樂数憤,通过旬购能够访问该旬柄所标识的时象,逬行一宦的操和.例如町以利用

5、前数CrealeFom创建字体,返同伯足字体句柄hFonl,那么此句柄就是这种字体的代表以后要使用此字体时调用f体句旃hFont即可a句柄的柞用足什么0请举例说明.瞬答:旬柄是应用程序中用来标识对象回一个整型数佢通过旬柄能够访问该诃柄所标识的对翦“进行-一定的操作匚例如,nJ以利用函数CreateFunt创建字棒,返回值是字坏句柄hFoni,那么此句摘就是这种字体的代表.以后要便用此字体时调用字休句柄hFoat即可aS5)一个Windows序的虽慕本构成应有哪些部分?M-;Windows应/H程序M右相対网定的怎本結构IUlWinMaih團数.和WndPtoc函数构成;基本柜架aWinMain

6、雷数是所有Window船数的入口.类似C语育的main朗数.其功能是完眦一系列的定义和初始化工件:,并产生誚息循环.粘息循坏是桜卞程序运行的檢心亠WinMain函数主耍由以下几个部分组成:定义井注册窗口类;建立窗口;产生消息循环*窗口朗数WiuIPtoc定.义了应用程序对接敗到的不同消息的响应,:拭中包含了应用程序对各种可能接收到的消息的处理过程,是消息处理分丈控制语句的集合匚通常,窗门函数曲一个或多亍switch.jcase语句构成,每一个case语句时应一种消恳的代码处理模块,当应用程序接收到一个消息时.柑应的蔽语旬被激洁并:执行相应的模块”&*应用WindowsAPT函数编程时有汁么特点

7、?解答:应用WindowsAPIfi数编程时.要依据如题起T1所示的棊本编程步骤.而口要详细考厲対可能接收到的消息的具体处理oWindows査Pl编程是nJ视化编程的皿础,不煖艮接利用hlFE編程利用MFC!编程时,部分枢架的代码足11系统肖接生成的,而利用WindowsAPI圉数进行編程,所冇的代码需翌用户自已完成,虽然编写程序比较繁企昇能航绘根本、協底层上了孵町视忧编捏勺整牛体系。因此,婪完仝拿捱町视化编捏并韋握系统的开发,学习WindowfiAPI编程長必不町少的坏节第四章Windows的图形设备接口及Windows绘图H田汁么是圏形设备接口?解答:WindowK用程序便用图形设备胶口刘

8、Windows设备驱动程序来支持与设蚤无关的圏丿氐图形设备接1.1(GDI)Window.系统的迓耍组咸部分,负责系统与用户脱绘團程序之间的信息交换,并控制在愉出设备上显示图形或文字.GDI的设备无吴性是Windows操作葢统的特色之一。対于开发人.员而言,所做的工柞仅仅是在系统的祸助卜建牛与某亍蜜际愉出设-备的关联,以要求系统加载相应的设备塑动程序,然后调用固定的GDI歯数进行输出即町,苴他的操柞山累航充成*齡2】如何透行图形的刷新?解答:圈形刷新包括刷新的请求、系统对刷新请求的响应以及具传的刷新方法。(1)刷新请求汽发生窗口.大小的调整、窗口的移动或窗口娥克他対象覆希等悄况后,都必须刷新窗

9、口用户区的内容,以恢复用户区内应僭的噩示晤态0但是Windoivs系统并下越是记录窗丨中需保存的内容係统只能在冇限的儿种情况卜一门动刷斯口因此,应用提序必狈具科及时处理刷新请求利峡新罔形的功能。Windows系统通常疫送WMPAINT消息将刷新请求传逊给应用程序。系统对刷新请求怖响应刷軌冇三种町能:分别是窗I1移动后的刷新、披翟盖区城的刷新以及対像穿越肓的刷斯,系统对上述三种刷新提快的相应的方法窗I移动后的刷新:系统发送WMPAINT消息,宙消息处理谢数完成刷新:被禮盖区域的刷新:Windows系統试图保存被窿盖区域的副本.以箔以匚刷新,如来不能有效刷新,则口应用程序发送WMPAINT消息;对

10、象穿趣后勺刷新;此时系统向动死成刷新任务価用程序不用省虑因勺如阿获取绘阎工貝的旬柄?解答:曲见的绘图工具上更疔画笔郝画刷获取绘图工具的句柄就是获取画笔和画刷的句柄皙两种方法能获得画笔旬柄U)调用晦数GelSLoekObiec:!获嚮累统定文的四种画WHITEPEN,BLACKPEN.DCPEN利NULL-PEN;(2)调用函数CreatePen山用户创建画笔口GelStackObject和CreaLePen这两个函数的返回值都是画笔右J柄=有三种方法获得画刷句柄:调用霸数GeiSLockObject获得系统定义的七种画刷;调用CteMeSolidBrnsk定义具有指定颜色的单色画刷;谓用函数C

11、reateHatchBrush定义具有指定阴影图案和颜色的画刷口上述这三个函数的返回值是画刷句柄(2)调用函数CreatePen山用户创建画笔-GelStackObject和CreaLePen这两个函数的返回值都是画笔右J柄=有三种方法获得画刷句柄:调用函数GeLSlockObject获得系统定义的七种画刷;调用CreateSolidBrush定义具有指定颜色的单色画刷;调用函数CreateHatchBrush定义具有指定阴影图案和颜色的画刷口上述这三个函数的返回值是画刷句柄如何定賃映像模式?辉答:映像模兀是设-备描述农的内容2,其忧点毘程序员町以不必考虏输古设备的坐标系苗况丽在一个统一的设峯

12、坐榇黍中完成图形的绘制与操fkWindowsnS神映爐摸式其中MM-TEXT映像模式得到了普遍的用用,是默认的眺像模式,甚特血是逻揖坐标旳物理坐标都以像索为单位。MMlEOTROPEC和MMANISOTROPIC两种脱像檯貢通过和图形从程序刊定文的逻辑设各彌口收像到物理设备的视口火实现坐标转换窗I是对贼逻辑坐标系上起序员设定的一个区域视I是对应于实际输岀说备上程序员说定i沟一个区城-定支了窗nsnn后win亦训牡黍统即可按照霄利親1的坐标比例订动训整圈形。注a:MMISOTROPIC映像橈式雯求区卿方向的映像比例柑同,这种要求可施导致系统强制变换视rk应用程序可以關用函数Cih佃pMc血得到当

13、前系统的映腺模或,调用函数如IM逬厂Mo氐设宜系统症文加斤种映像惶或然后町以调用前数SttWindowExiEx设瞥窗口区域大小,调用函数SeLViewporLExLbx设邊视1-1的大小。视I和窗口的賦认原点均为(0,0)还iij哄调JT固数SetWjndowOrgEx車I函数SetViewpurtOrgEx来设定鹿I和视II的猱点注栽虽后这两个国数只育在MM.SOTROPICftJMMANISOTROPIC两种模式下才忖用。症又了映像欖式后菠们就可以在稼H匕绘制相用闌阳形丁.第五章文本的输出方法与字体的设置15千】如何获取字狐句柄?解答:对以適过两种方法探铝字休句柄;选用系统提供的7种族抿

14、字体首先定义字体旬柄变屋bFHFOMIhH:热后调用噺数hF=GeiSiockObjecK.)获得索统字体句柄;调用萌数泅閒WbjQ(bdc,hF)将孑体旬柄选入设备坏境创锂口定.叉字体系统提供的字体往往不能涡杲咸用程序肘要求.实际上中.文的亍储是很丰宦的,口前40多种字体,程序燼町以调用函数6閃1并呦l创建和定义字体.并把返回苗赋蜡一句柄变凰.然后调用函数SelectObject建的字体旬柄选入垃备坏境:匡Q如何创建打定处字休?祥答:通过调用函数CreateFont获得口定兴字怖的旬齣该函.数的调用賤丈如卜:hP=CiciLtcFuntininHcight.iniiiWidLhinlnF!M

15、ipenit-iiLhininOiitTialtsMi,DWORDnWeisln:DWDftTlDwlMtir,DWCKDJwUndeiline,DWORDdv-StrEkeDiitDWORDdwCharset,DWORDdwOurputPretisicm,DWORDciwClippTecisitnijDWORDihyQuiiii尊”/字佯硏度,取0則采用系统默认值便用越辑单位宇怵宽度.取0则由乗统相樨高噩比咫最越值倾出逻魁单位打毎讦文宁相对于页底的箱应,旦丨吩之曲为单位门您个丈字柑对于页血旳餡度JJI份之应曲单位字体粗酣庞,取值范憎为!的如卑聲求字休伽.無.创誣北零爭/如.果要求下划比期嚥零

16、如異竪乂删除钱,则耿卜零字休斫届字捋集输出精度+馭取默认值OUTDEFAULTPRECIE剪粽精度,一般取默认怔CLIPDEFAULTPRECIS/输出质気,一般取默认值DEFAULTQUALLTYDWORDdwItchAndFamily,M字休的住瓯及宁休的系列一般取默认袒DEFAULTPITCHDWORDIpszFiLceiumefF字休常)其中hF是字体句柄。囱m如何设宜字怵的颜色剂背虽色?解答:在字棒旬精彼创建后,还可以设置字体的颜&和背彊颜酋,以获得粘关的输出效采。应用程序通过调用歯数SetTexiColor(bdc,croior)设迎宁体颜芭,hck是设备坏境旬5crColor为设

17、置的颜色亠通过调用函数SetBkCclor(hdc,crColur)来设胃背呆颔色.丈本是如何谕出的?髀答;丈木的输出过程包括我取字体信息、格式化文木调用函数输出文木等具悻过程nCD荻取字体倍怠何冏程序在输出丈本之前必顒菠眼当前便用于佈們育.艾信如当苗使川子体的尸符高度辱,以确定文木格式和卜一彳J宇符的输出位置.程序调用函数GetTlMecrics(hdu,&lm)来慕取字体信息,甘中Im是血含字休佶息的TEXTMETRICS结构悴变気格式化文本格武化文本分两种悟况,第一种情况是确定垢绒文本坐标,此时只耍调用函数Get-T.EExTHPoinl強得到一亍Csize翦构体变駅、该娈佩包含亍符宽度

18、信息,通过计算得到下一个亭符的X坐标.第二种情况是确定换行时的文本塑标,利叩前而得到附字休信乱姑构体Lni和当前行的Y坐标计算F行的Y塑标.文木输出常用吋文木输出Y/:TeKtOut.DrawTexl卿TabbcdTextOul等,苴中以函数TeUOuiM常用.这三种方法的特点见表具体的函数彤式见帮助丈件5-1二狗文丰输川审数衲数训明TbilDuiDtjwTextFrabbcJJcxtOut便用斗前选中的宁悴和飙色在指宦冏位置上绘乱正文字符申住绪建的矩形向根擱指建的方法幣园化文本在指逛的缸養上抿据指建的方法输出罕符出第六章Windows应用程序对键盘鼠标的响应任曲应用程序如何响衿锂檻消思?解答

19、:讎盘作为输入设备是Windows应用程序中卜分蚩要的输入乎段半用户按卜或释放-个键时,谗盘KEYBOARD.DRV中的進盘中断处理程序对所占锥进行编码.并调用Windows的用户模块USEREXE中的疽关程用來产生键盘消息.扯终发送到槪川程序的消息趴列中去等待处理.鹽盘上的每一牛縫都冇一个惟一对应的标识伯,称为扫描码肖用户按卜或咅释放某键时,都会产生这平口设备肯关时扫描码,设备腿动程序截取键的抽播码后把它讷译成为耳设备无关的虚拟码,这样键獻的输入就吳产上一条消总,它包含冇扫描码、虚拟码以及贯他耳卅键仃关的信息设备驱动程序将消息境送刮累统的消息恢列中,然后山Windows將游愿従送到相画的线程

20、消息臥列中最后,11JWndProci数从誚息弘列中取出键盘消息,进行型要的处理。力刊应用程序如何啊应鼠粽消息?解答:鼠标柞为一种定位爺入设务在WmdOWS町觌忧编程中得到了广泛的用用*通过鼠标的单iti-ili和拖放功能用户可以很容同地操柞棊于Windows界画的应用程序.叙标驱动程序在启动Windows时装入,评血操牛系统適过甌标驱动程序能檢测出亂标足否存在;若竄标存在则设备驰动穆斥就将捕测到任何竄标审种闵肖在窗II内冇風标事件发生时,窗丨1就按收到一牛鼠标爭件(以帘息的形或发送给应用程序的窗【1)。注诡:能按受尿林事件的鬣口一定是活动甜I或荷是貝哲输入依点ll:鼠林消总刘表&T所示表6士

21、鼠标的消息玻其含义滿息含义WM.LB(J1I,OKDOWN,曲户区内槪卜鼠标左健WMLEJUTTONUP用户区内松开嗣标左铤WM.LBUTTONDBLCLK用八区内观击鼠标左铤WM.MBLTTONDOWJ用户区内应下翳标中趣WM.MBETTONIIP用户区内松开闹折中键WM.MBLITONDBLCLK用区内礙疔国标中邂WMRBLTTTOtVDOWN用严区内按下更标右翘wmRHtrTTOisrnp用八区内松鼠标右腿WM-RDLfTTONDaDCLK川户区内枫击鼠标右理WMMBI:TTONMOVE用户区内移动園标在馭标消息中.参数IParam包含了做标的WJParam的高位包含了竄标的y坐标P迎艮

22、m的低检包含了鼠标的k坐标;参数wParam包含了一个描示各种虚拟.码状态的值口第七章资源在Windows编程中的应用r?简述菜单衍循的创建.过程.解答:菜单是Window用户界而中窗门的莊要组成部分,菓单可使用户直观地了解井方便地使用憊用瓏序所提供的各项功能-创建菜卑可以分为定义利加载两个步骤定义菜单菜单在资源丈杵中的定义形式为:菜单粘MENU1诙坝離单邛判表菓单塔表示特定的菜单.应用程序適过蔬单喀加敎揩症菜单。MBNU是关键字,用来表示務源的性质=菜单项是菜单的釦战部分5用PUPU和胚缶UITEM来蹇义菜申项.武中POPUP定义弹出式菜单,MENUITEM.用来定义卜担式菜单-=在资源文件

23、中尢义了菜单資瀝启,还需垩在头文杵中逬丈菜单顼标识所讨应的數伯“加载菜单加载菜单的方法冇三种:在窗口类中加载菜单-wndch&.IpKzMeiiiiNiinieEpsMeniLiNiinie;在创.建窗口时加载菜单斤先调用LoedMenu加载莱单,在CreaUWindow雷数中加入:CreateWind,ow(勺*+专,.s叮hMenu9*;苴中Menu是山曲数LoadMen山返回的菜单甸柄a动态加载菜単庇用程序诩用雷数LoadMenut菜单旬柄民町以调用前数SetMenu刚态加城菜单E73I如何利用拉留费源?解答:位图是一种数字化的图形表示形式,是表示一亍图像訂标的一慕列数据对于绘图或圈片一

24、类的铉图,数抵屋一般牧人为了提商显示耐新堆度,也圈操件须在内存坤境中进行“位圏的撅柞包括宦义、加報、选入内存设备环境和输tLh宦殳位图句柄定文位图旬柄的方或如卜】HBTTMAPhRilmsp;(2加载位图调用歯数hBitmap=LaadBilMap(.)加戟,位图,获得桂图的句柄*(3选入设备环境调用画数CreateCompatibJeDC向鎂统申请内存设备山柄,症取了内存设备旬柄后.调用朗数SeleciObject将位图逸入内存技备坏境此时即可对英进行编悄.(4输出位图尿用程序调ffl.BHBlt将位图从内存设备环境中输配到揣定的设缶上.P4如河应用时话框枣源7辭答:)ciweWMTNTTD

25、rALGG:retuin1;WM.COMMAND:brfflik;此消息处理雷既的瞬数打工窗口处理幽数册彳几也刈订框处理函数的返回值与主窗I时处理函数不同,时话框消息处理国数西回BOOL偵血主窗I丨函数返回LRESULT储;対話桩处理幽敌不处理臬些消思如WMPAINT.WMCREATE和WMDESTROY等;此外,対未定冥的誚息处理不同:主窗I陶数通过调用DefWindowProc的数完成对未定义处理过程消息的赴理,而对讥框消息处理函数如呆接叔到未定义处理过程的消息陳腿回FALSE(return0)。关闭対钠框在村诂框消息处理殴数中的合适位皆调用歯數EndDialog來关闭炖祜框“用模态对话樞

26、”的编視片模态时诩lir的编程类饮但在定义创建及清息处理上有些差别定义的不同主要在设宜选项上:“养模态对话框”的样式一般为:STYLEWS.POPUPIWSCAPT1ONIWSVISIBLE,注运拝武中一定要包含WWVf?!BLE,否則对试框不能显示H來口要调用西数CnfttcDialog來创建和显示席话框。在主窗口消息处理程序中的消息讎坏中必须包含餓扶爰往1TF模态对诂框”的消息:井将H发送到相威怖消息处理函数中去处理的爲句。女収whiJeGetMessage(tems,NULL,0,0)if(!laDialDgMessaelhDtgj&)趾函數刊断消息是否发连对箱框(TthnsIaiuMm

27、SJLgo&Tj)sg);DispaIrhMessage(&trh);1获闭“非橈态对话框时,製调用曲数RestroyWindow.F-&)“模态对诂框”与心模恋对诒樞”何何区别?在輪程上有何不冋?解答:(门“檯态对话荊r不允许用户在光闭对话樞上前切换到应用梶序的其他窗口。“卩摸态对话框”允许用户在该对活框与应用程序之闾来回切换。IF模态对窗艇”从WinMaJn函数的悄息循坏中按受输入在編程上f非欖态对话樞”在定义资顋时,必须在设置选项中电含WSVISI-BLE,否则不能显示匚4)*橈态对话框”调用函数DialugBox来显亦对话框,护非模态对站框”调用函数CrealeDiLilog来显示对话

28、権=“非模态对诂和i廿需要在主函数的誚息循环中截按时话框消恵,但“模态对话框”不諧耍。(6模态对話框调用函数EndDiaiog其闭对诂框。模态对话框调用国数DcstroyWiridow来天闭对站樞a“创如何利用瀏标覚源7孵答:一令图标代表一个应用程序的特味虽小位崗当在圏标上叹姑鼠标左犍就可以执行该程序。圈标的操作类似于前而淡到的位图操作,也要经历圏标的创建庄资源丈件中的定叉、圏标的制我零步骡.愠标的创建用户可以利用Windows自定义的图标,也可以通过瀏形編辑器自定文图标玉式也在蹩源文件中自定义関标肖采用自定义图标形式Bf,要在费源文件中拥入如卜代码:闍标名TCON圈标.文桦卓在应用程序中力I

29、I我圈标应用理序是通过凋用函数LcKKHsri来进行圈标的加载的,此过程经常在定义窗丨丨类时进行隼式为:wndclmss.himnLoadleant):第八章MFC基础知识辩田MFC类层次中工取包舎了哪些类?解答:类层次中主更包含以下各类:CDbjtxt类,它足MFC抽象革类,是MFC中第数类利口定义子类的根类,它为程序员捉供了许冬编程所需的公共操(仁这些操作包拒:对裂的建立和删除、氷行化支持、对錄诊断输出、运行吋信息以及集合类的兼容零.用程序体系皓构类:它能提供多数应用程序公用的功能应用程序类主耍包含了与命令相关的洪、宙口应.用程序:类、玄秒观类和线程菇摊等。可视对曙类,它主耍包括:CWin

30、l窗IJ茨我娄提供丁MFC中所有窗口的承本功能,它是CCmdTargel类的基炎;CView视类该类农示框架窗I的客户区和显示丈桂数拯并接竇输入的客户区;CMenu菜单类该类足CObject类的于英用于管理菜单;Crilog对话框类,该iCWnd摊中派生出来,対话框子层次皓构包括通用对-詁樞类CDi汩谄以及支持文件选样、蝕邑选择r字体选择r打印、替换.文本的公共对話框类;控杵类,揑件了-层次结构包拈若T类使用这些类可以建芒静态文本、金令按钮、位图按毓同J表樞等;CCottfi-aJBit-控件界类,控件条子鉛构为工具条、状态条.对订荼祁分割留i楚立模型;CCdiObjeel绘丽对象类,图闿绘画

31、对:象子层枚结掏以CGdiObject类为根类,可以川于建立绘画对彖模型,如画笔、画刷、字林、位图、调色板等;CEC备描述表类,该类及其子类交持设备描述表対扬,是CObjecl类的子类.踊用类此分类中的类提供了很甫通用腮勞.侧如立件卩【)、诊断和样常杜那等”包括CFi抵类和CAtche.CExceplion扳收集类等&(5)OLE宛对象连接与嵌入(OLE)子忌次站构为支持OLE提供了9个类,分为3种:普迪类客尸类和服务器类.(GODBC数据库饕,开放数据库连接子层次给构提供了一些类来支持ODBC的特征.即適过这炖类可讦发数据库战用捏序来访间密牛数据库立件.该层找给构中上要包含CDaiaBase

32、类xCRecordSel类CRecordView类等-D421如诃应用应用程序向导?解答:VisualC+6.0为了减轻輕序员的工件睫,特别増强了应用程序的向导功能匚眉用裡序向导拘程序员提供了一个基于MFC!的脱用程序框架,程序员只要在此慕础上增加实现擀定功能的代码即可一般通过以卜一场骤来实说:衽Ntw対话植(如各|S-t中所示)中选择MFCAppWizard(exe),ProjectNaine文本框中输入新建的项口粘如My.PrujecL,单击QK钮在弹出的MFCAppWiz.ard-iStep1对话框.如图8竝所示)中可以设置应月程序的类型.指定网用程序胆结构是否采用立裆器L图鲂构.以及资

33、源文件所使用的语种等应用程序类型主要何据:单文档应H1程序,多文档应JB程序,菇于对话框的应用程序在岳坤列我框中一般选痒中文作拘贽派文件的语种a单ih闌$逐中的Nexl按钮,将弹出MFCAppWizardlep2试6对话框(如圈g书所示A在此对话框中毀国臧用程学所使用的数期库支持,它有匹种选坝默认值足None.忍略所有的数据库玄持-选择应用程序的数据库支持后+单占按钮,弹出MFCAppWi如代1坏3of6炖诂框(如阳&4所和=蛊此蔵话框中町以设谩应用程序所交持的复合文档类型。这一涉使程序负可以向应用程序切入OLE立持,设冒完后,单击Nzt按钮,将进入MFC?AppWizard-Sicp斗就各对

34、话框如圈8-5所示h在此可此设置程序的外观,如是否便用工具栏、是否有初始狀态出是否使用3D控件等等设首后舉市Ncm按钏,进入MFCAppWizardStep5of6对話如图Kft所示)-在此可以粽窗丨1惋格设国为标准凤格或WindowsExplorer凤格.还可以设置是否在向用捏序中工成代码注粹,是咲艾宇动态铳按库还臺以静念就按库的力貳便用MFC库等方式-说宜完启,单山M就I按钮,址入MbCAppwitirdStep6of6对讪框(如闍Z所示)在此可以设置向导生成的文件名祁类名.设置后r单Finish按钮,弹岀NewProjectInformation对话框(如图88所示)*在该对刘框中列出了

35、关于建立的应用程序项日文件的相关偿息-这样应用程序向导所僧财工作就全部完成了向导已经为用戶生成了一个叮执的应用程序框架,侶专在应用程序向导中能够创建哪些类型的文件?解答:VisualC+6D可以创建的丈件类型如农H所示.VisualC卄6成创崖的文件樂刑文件爽型饥明文件荚製谢聊ActweSgtterligcBitmapFUeGC+HoudciFikHTMLl嗨創建活动孵铮番创建位岡丈杵&Joc卄头文件创建HTML文件BimryKileC-H-StMirceFileCLLisarFUefexjuFilm创建一进曲文件迩建C+爾文件巡建光标文怦垃建圈掠文件MdfruFileRtouiHLCTcti

36、jpkleTextFile RtfiuurtcScrip!SQLScriptFlit创建资源脚本文件削建吕QL腳本文件创建宏文件创建敢源模威立件创建立本立件第九章Windows标准控件在可视化编程中的应用眇41常用控件祁哪些类型?解Windows提供了從蚩的控件.具中常用的控件主豐包抵:按钮控件濫动条控件、静态控件、列农桓控件、编辑桓控件、爼合框控件.控件为可裡化编理提供了方便快捷的途径。9匀按钮控件的特点是什么?懈答:按钏控件是Windows用程序中摄常用的控件才一,它的种类较多,功能丰宫“如仔普通扶钮15严单选杭锻”严負选按钮”和代爼合框按朝捋”“轡遇按钮”上可以貴置文本和加载位圏广单选按

37、钮”具有互斥性,当选中棊一牛选项时,其他的选项自动取消;复选按钮”可以允许用户进行务项选择f1组合框按钮是一种特殊的按钮:既奉牡理鼠标和键撇检入,也不向具父務口发送消恩使用它主要是使畀面整齐.按钮作为-种T-窗,可以具有一些窗匚|前样式,另外还具有很多独特的样式am按忸控件是如何应用的?解答:按钮是一种北常巾用的控件它具冇若干用導炖于接收来白用户陆命令或响附,一个卜压武按机足适当的谱择箱存在若个互相排斥的数抑项,一纽单选按钮是脂址用户选择的方便的方法如果若干个选项之间不互相排斥,一组复选框是比较好的握择。若要创建一个框架,将苴柚的揑件包圉在B;中,则常使用分组框。9如按翅揑件分为几类?解答:在

38、Winduwy中主要有四种按钮:复选框(CheckbM弟)、单一选按钮(RadiobuL-tqct)F压式按钮Pu百hbiLttoii的和分组梔(Or與pbjo覽轴)抄剧各种按钮控件的类是如何定义的?解答:CEuLton是CWnd炎的派生类,它同时貝CWnd艾的一切功能“类中的函数按照功能分为3舅:(i)创理利初始化喑数:拘造函数用來初始化C帥1伽真对象;Created窗口的指定傥置创建CBullim对釦常用的CButton对彖方法:GetStaie获得一牛按钮控件的选中、隹择和聚焦状态iSetState丧置一牛按钮愉选择状态;GetCheck得到一个按钮的选中吹态;SeiCHeck设雪一个按

39、钊的选中狀态;GelButlonSlyle获得一个按钮I的样武;SetBuItonSLyle设定-个按钮的njSetBkmap设定按凱上显示IjGetBkmap获得按钮上显示位圈的旬柄俘析拗函数B初哪些按钮控件需要初始化?脾答:单选按钮利复选框按齟需要初始化.B刊滾动条分为凡类?其类结构是如何宣义的?解答:滚动条分为“垂宜懷动条和“水平滚动紂炳种.滾动条:萸是CWnd的派生类它同时继承TCWnd的所有功能.类中宦义贯函数按服功能分为3类(1)创建和初始优禹数:包括CScrolJBar构遥附数.Create曲数用于在窗口中创建一个滚动条: (2)滾动第类方法歯数:主要包括设置滚动茶滚动范掛的函数

40、SetScrolUange,设麗消块位置的幽数SeIScroll位遊的味数GctScrdlPo,设进懐动条信息函数SetScrollInfo,获得滾动条信息函数GetScrallInTo等;f3)折构函数话罚滾动条控杵是如何进行消息传递的?解答:一令fdFC程序需址理两种.来口滚动条的消恩,这些消思町以谊过消息映像项和消息处理程库来完成*我AF是两个獲息映像项.表!Ft消息映债顼消息映像意义ON.WMl5iCROI.L斗水平滚动条位閤变化时一水平樓动峯览送此誚总ONWMVSCKOLL当垂頁滚功条便置变化时,垂百滦动秦爰送此消崑看起来迭个控件只冇很少的消倉.隹实际上这两个消总映像中乜含了仆常半富

41、的佶息.MFC通过两于消息处理谢数OnHScroll.flIOnVScrull来处理这两条消息,这两个消息的徵型声明如卜一:afxms.votilOLtHScrullfU1NTnSBCude,LINTnPos,CiicrullEkirpScrollBiir)afx.msgvoidOnVScroll(UlNTnSECcde,UINTnPus.CtcfollBdirTpSmiNBitr貝中pScrollBat针捋向发送消总旳滚动条搜件.虑BS血扌斤明了一个町能的谡动茶代码,也就是用户村滚动条按作的类型(如表9占所示)-参数tiPm只有当通知代玛为塵欧THIJMRPOSITFON利SBTHUMBTR

42、ACKJ仃效,表示円血滑块时位査.用户只需根揺系统俊趣进来的消奩來进行相尿的处理即可表2滚动绻的通知代殆通钿代码1含.ZBBOTTOM用户按End建轅动御戢大值SBENTJSCROLL阳户释放一个键-发送一些虚键码WM一KETOWN)滚动停止SBLINEDOWN向下漉一行SBLINEUP向上嚷一,订SBLINELEFT向左滚-”行SBLINERIGHT脚右滚一荷SBPAGEDOWN向卜滝一页SBPAGEUP向上滾-页SBPAGELBFT向左礎一页SBPAGLRIGHT向右滚一MSBTHUMBPOSITION拖动到绝对也豈SBTHUMBTRACT拖动滑块到指泄的位冒SBTOP用户煦动Home键,

43、滚初刘最小值杪划编辑框控仰是如何便用的?邮答:在麼用Z前一定要创建编緝框控件,有两种方法町以创建編辑框控件:刑用VisualC+-6jOfq带财资源编辑鬍,把编辑框揑件放匿在指定的対诂框窗1-1的合适位应,燃.后利用ClassWizard把送个编辑框控件利一个CEdnJ象联条起来。在程序中宦义一个CHdit対象闹用Create为编悒桩控件设酉參数和样式来初始化EE曲対象然后我们就对以调用各种编辑框方法来使用编辑框,常用的方法如下:Cu心方法将编轲框中旳文本拷贝到勇珮板;Cut方怯将騙辑框中的文本剪貼到剪贴板;P狛上方法将剪妙板中的.数抓插人到编辑框控件中光标所在的位置上;Clear方袪删除編辑

44、框中为前的选释;CauUndo方法决定一人缠辑框操作是否可以撤销;Undo方法取消编辑框中的罠后一次的操柞;SetSel在編辑框中设定选掙的范围;Replacescl方法用招定的更本来代替选中的文本;GetSei方法获得编辑框控件中当前选挥的开始和结束字符的位置.抄刘】编辑框控件的类谿鞫是如何宦义的?解答:MFr在类广珂册中捉供了标萍的Windows编掛握控杵朋勞”广閔讨是。附胡类的冑接淀生炎这就意味着它MSCWndft所有功能-作砒类的定义结构很复杂,我们可以把谪类的函数按功能作如下划分:榕适隨I数CEdii函数用来初始化CHdit对绘;Ue址e阱数用来在窗口的合适位讶上建立编辑框控件砸用C

45、Edit类方法等剪贴梶操作儒.数;Undm1cltleCDnitiitfi()KeleaseFilet)SjLVfiMt)dified()JsMcdificd()SetModifiedFhgOGetHrsrViev卩饰i你】m0由炳FC调用来更宜文档由MFC训用來打开文档由来保存文档由训用来关闭立档磁企观家文档的框架窗口是否被允许关莊在耒撤销文档对象吋删除文档数州禅敢文件以允许牡他向用程睜蚀舟査询文描的慘改状态井存储修改的文档碗建文档从它晟后一次存储后見否披修订过设置文档从它蚊后一次存储甘是否被修订过的冇尔值機得视圈列麦头的恆頁我需视韧列表的V个祗岡CDacumeni的派生炎的构造步骡是如何进

46、厅的?解笞:一膛探说,从CDncumtM类派生口的史档类所需胸典型步骤为:为每k文档尖羽从CDocument尖(肖然也可以悬只他CDocunienl类的派生 类)派生一个相应的文档类a刃丈档类添加成员变蛍.这些成员变議用来保存丈档的数据,其他对喙如有丈1和天联的觇图)H接或剛按地访何迖兰成员变哉米读取或更新文档的数拯一SeriaEzc成-员腑数实现.文档数据的串荷化。ft11文档模板类的結构是汕厠定义的?解答:文裆摸板类CDocTempire是从CTnuJTiirg航娄卜派0:的工DocTginphi対类提供了文档模板类所需要的最幕木的功能赛现它提供的方法分别是一般方法和虚拟方法(如表11T所

47、示1。表11-3CDdTtiiiplirtE类的方法方法说明GeLDucStringO获得与立档柑关的字符幣Load!emp1ate(加载指泄的模板AdilDocumentO给文档模板潛加指世的模板RcTnoveDDcmncntf从文档模板列表中刪除文档GetFirKlDocP(jsitiDD()莪得与文期模板相关的第一牛丈悄的位豈GetNextEocC)获得文畧及下一个文档CreateNewDuuninea1()建立文档CreateNewFraTue()建立包含文档和视闻的框架窗11OpenDiTCUTnentHilei)盯丿卜由路粋粥指罡购文胆iCfoneAilDt)cument()关闻所

48、有文档SctDcfsinltTitlc()豆示文档窗口的标题栏中默认的标题SaveAaiMcxlid()査询文梢模廡旳倏改状态并存储与之关喉的所冇文档在M+6.0収主档类占丈档次相关朕的视图类以及为视图类捉供屋示的框架窗口都是山丈档模板创建的.每一种丈榔类型都有一种文档橈板与之相对恢,丈档模板员资创建和管理该文档类型的所脊文档.文档、视圈和框架二若之何的联系是通过文档模胶的构造闊数来实现的&W视閨类的给构是如何定义的?解答:CW伽V类UCWnd类F诞生的,由爭所有的从Ciidw类淀生的类也娜建由FWrul类间接派生的,所仃的这些粪都具仃CWnd的所有功能|创建、移动、显那和隐藏窗口,冈此CViewnJl接枚任何Windows消息,CView类提供了文档类所需更的疑族本的功能实现官提供的方摆分別是一般方法和塩拟方梏(1)一旣方祛:一般方法如表所示a表11凋皿训类的一股方法方法说明GqjlDvuuineril()DoPrcporcPinmting()荻得描向弓视阳躺犬联的文档的惜计设這打印预览(2)虚拟方法:虚拟方

温馨提示

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

评论

0/150

提交评论