VisualC++面向?qū)ο笈c可視化程序設計課后習題部分答案(第三版)_第1頁
VisualC++面向?qū)ο笈c可視化程序設計課后習題部分答案(第三版)_第2頁
VisualC++面向?qū)ο笈c可視化程序設計課后習題部分答案(第三版)_第3頁
VisualC++面向?qū)ο笈c可視化程序設計課后習題部分答案(第三版)_第4頁
VisualC++面向?qū)ο笈c可視化程序設計課后習題部分答案(第三版)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 第三章Windows應用程序B+Windows編程中窗口的含義足什么?解答:窗是Windows;用揑序中的基車採作單元,是應用程序和用戶之間交直的接口壞境,也是系統(tǒng)管理應用趕序的卅本單位編寫一令Windows用程序首先應創(chuàng)建一個或第孑窗I心隧后應用程洋的運行過程即是窗UI內(nèi)怫s窗口與窗口之閘、窗口與系統(tǒng)之間進行數(shù)抵處理利數(shù)抿交換的過程。BW1爭件嗨動的特點是什么?懈答:Window操件是建立在韋杵驅(qū)動執(zhí)行程序芯礎上.與利用白頂向下沒計和執(zhí)療【時轉(zhuǎn)統(tǒng)過程式編程疔武完全不同。在便用術向過程的編程.方式時,程JTJ笈苦是處j:完金支配狀態(tài)口程序執(zhí)行的流程遵從程睜員預先規(guī)定的路輕而而向?qū)ο蟮腤ind

2、ows程序的執(zhí)行順序則取決于事件利消息的岌土頃序.所謂消息是描述事件發(fā)生的怙息。當我們單山一個按鈕時系統(tǒng)就產(chǎn)生一條特定的消鼠衷水此按鈕乎件的笈生.程序購執(zhí)行順序足山順序產(chǎn)住的消息羽動的,所以匪向時躱的WindowsIf的設計巫點足編罵事件和洎息的處理程胖程庫口町以根據(jù)泊急類電貓寫甩序以處理挨堂的涓息,或潸發(fā)出H也消懇以馳動其他程序,但是不必越先確定消息產(chǎn)生的次序.事件馳動的這些持點對r編寫交互式時程序狠有用處。B國Wkidawi應用程序中購消息椅遞足如何進行的?請舉例說明.解答;Windo郴対.應用程庁提供稱為消息肌列的保圉區(qū)。ItWindowstX及由共他阪用程序向用戶的痕用程序發(fā)毘的全部涓

3、息都存傣在此歐列甲等特謂用.SDK程序以特定的循環(huán)調(diào)陽Windows消息,稱対消息循環(huán),如下代碼表示北循環(huán)一直運序接受終止執(zhí)行消息肘才停止匚while(GetMeESage(&msg30t0.0)1imnslutt:Nlcahae(-uiagDispatuhMBSiSae(&m5.g):在while循壞內(nèi)部川踽環(huán)的毎枚迭代洞用WindowAPI昭數(shù)GctMcssagc(0,00)以得到消息隊列中的、一個消,氐并把它存左將定的MSG蠟構休變就爼卷中TtanjilaleMessage(實規(guī)鍵盤上某牛鍵的釉譯-DispatcliMessaged民巾糊圈數(shù)向窗I的涓息處理惓數(shù)發(fā)送消息、倜用相應的消息處

4、理宙數(shù).宣成后進入下一個循壞.例如,如果和用戶單卄鼠標的左鍵.親統(tǒng)將駆送一條WMLHUTTONDnWN消息到該程序的幫息隊列,在消息循環(huán)中由GetMessage(裁如J)函數(shù)得刮此消息并把它存儲在MEC姑構協(xié)變忻m卷中:然后調(diào)用TranshiieMesge(Aimsig)數(shù)如果不是筆盤捎息.則此鑿數(shù)不做任河竝理,接著調(diào)用3幼嘰少NR艶洋(&巾卷)附數(shù)將此消息發(fā)送至消忌處理函數(shù)MuiProCn在消息處理曲數(shù)中執(zhí)行相同的消息社理程序;然后逬入銀F個循環(huán)。匕也旬稱的作用是什么?請舉例說明解答:句柄是應用程序中用來標識対象的一個轄樂數(shù)憤,通過旬購能夠訪問該旬柄所標識的時象,逬行一宦的操和.例如町以利用

5、前數(shù)CrealeFom創(chuàng)建字體,返同伯足字體句柄hFonl,那么此句柄就是這種字體的代表以后要使用此字體時調(diào)用f體句旃hFont即可a句柄的柞用足什么0請舉例說明.瞬答:旬柄是應用程序中用來標識對象回一個整型數(shù)佢通過旬柄能夠訪問該訶柄所標識的對翦“進行-一定的操作匚例如,nJ以利用函數(shù)CreateFunt創(chuàng)建字棒,返回值是字壞句柄hFoni,那么此句摘就是這種字體的代表.以后要便用此字體時調(diào)用字休句柄hFoat即可aS5)一個Windows序的雖慕本構成應有哪些部分?M-;Windows應/H程序M右相対網(wǎng)定的怎本結(jié)構IUlWinMaih團數(shù).和WndPtoc函數(shù)構成;基本柜架aWinMain

6、雷數(shù)是所有Window船數(shù)的入口.類似C語育的main朗數(shù).其功能是完眥一系列的定義和初始化工件:,并產(chǎn)生誚息循環(huán).粘息循壞是桜卞程序運行的檢心亠WinMain函數(shù)主耍由以下幾個部分組成:定義井注冊窗口類;建立窗口;產(chǎn)生消息循環(huán)*窗口朗數(shù)WiuIPtoc定.義了應用程序?qū)訑〉降牟煌⒌捻憫?拭中包含了應用程序?qū)Ω鞣N可能接收到的消息的處理過程,是消息處理分丈控制語句的集合匚通常,窗門函數(shù)曲一個或多亍switch.jcase語句構成,每一個case語句時應一種消懇的代碼處理模塊,當應用程序接收到一個消息時.柑應的蔽語旬被激潔并:執(zhí)行相應的模塊”&*應用WindowsAPT函數(shù)編程時有汁么特點

7、?解答:應用WindowsAPIfi數(shù)編程時.要依據(jù)如題起T1所示的棊本編程步驟.而口要詳細考厲対可能接收到的消息的具體處理oWindows査Pl編程是nJ視化編程的皿礎,不煖艮接利用hlFE編程利用MFC!編程時,部分樞架的代碼足11系統(tǒng)肖接生成的,而利用WindowsAPI圉數(shù)進行編程,所冇的代碼需翌用戶自已完成,雖然編寫程序比較繁企昇能航繪根本、協(xié)底層上了孵町視憂編捏勺整牛體系。因此,婪完仝拿捱町視化編捏并韋握系統(tǒng)的開發(fā),學習WindowfiAPI編程長必不町少的壞節(jié)第四章Windows的圖形設備接口及Windows繪圖H田汁么是圏形設備接口?解答:WindowK用程序便用圖形設備膠口劉

8、Windows設備驅(qū)動程序來支持與設蚤無關的圏丿氐圖形設備接1.1(GDI)Window.系統(tǒng)的迓耍組咸部分,負責系統(tǒng)與用戶脫繪團程序之間的信息交換,并控制在愉出設備上顯示圖形或文字.GDI的設備無吳性是Windows操作葢統(tǒng)的特色之一。対于開發(fā)人.員而言,所做的工柞僅僅是在系統(tǒng)的禍助卜建牛與某亍蜜際愉出設-備的關聯(lián),以要求系統(tǒng)加載相應的設備塑動程序,然后調(diào)用固定的GDI歯數(shù)進行輸出即町,苴他的操柞山累航充成*齡2】如何透行圖形的刷新?解答:圈形刷新包括刷新的請求、系統(tǒng)對刷新請求的響應以及具傳的刷新方法。(1)刷新請求汽發(fā)生窗口.大小的調(diào)整、窗口的移動或窗口娥克他対象覆希等悄況后,都必須刷新窗

9、口用戶區(qū)的內(nèi)容,以恢復用戶區(qū)內(nèi)應僭的噩示晤態(tài)0但是Windoivs系統(tǒng)并下越是記錄窗丨中需保存的內(nèi)容係統(tǒng)只能在冇限的兒種情況卜一門動刷斯口因此,應用提序必狽具科及時處理刷新請求利峽新罔形的功能。Windows系統(tǒng)通常疫送WMPAINT消息將刷新請求傳遜給應用程序。系統(tǒng)對刷新請求怖響應刷軌冇三種町能:分別是窗I1移動后的刷新、披翟蓋區(qū)城的刷新以及対像穿越肓的刷斯,系統(tǒng)對上述三種刷新提快的相應的方法窗I移動后的刷新:系統(tǒng)發(fā)送WMPAINT消息,宙消息處理謝數(shù)完成刷新:被禮蓋區(qū)域的刷新:Windows系統(tǒng)試圖保存被窿蓋區(qū)域的副本.以箔以匚刷新,如來不能有效刷新,則口應用程序發(fā)送WMPAINT消息;對

10、象穿趣后勺刷新;此時系統(tǒng)向動死成刷新任務価用程序不用省慮因勺如阿獲取繪閻工貝的旬柄?解答:曲見的繪圖工具上更疔畫筆郝畫刷獲取繪圖工具的句柄就是獲取畫筆和畫刷的句柄皙兩種方法能獲得畫筆旬柄U)調(diào)用晦數(shù)GelSLoekObiec:!獲嚮累統(tǒng)定文的四種畫WHITEPEN,BLACKPEN.DCPEN利NULL-PEN;(2)調(diào)用函數(shù)CreatePen山用戶創(chuàng)建畫筆口GelStackObject和CreaLePen這兩個函數(shù)的返回值都是畫筆右J柄=有三種方法獲得畫刷句柄:調(diào)用霸數(shù)GeiSLockObject獲得系統(tǒng)定義的七種畫刷;調(diào)用CteMeSolidBrnsk定義具有指定顏色的單色畫刷;謂用函數(shù)C

11、reateHatchBrush定義具有指定陰影圖案和顏色的畫刷口上述這三個函數(shù)的返回值是畫刷句柄(2)調(diào)用函數(shù)CreatePen山用戶創(chuàng)建畫筆-GelStackObject和CreaLePen這兩個函數(shù)的返回值都是畫筆右J柄=有三種方法獲得畫刷句柄:調(diào)用函數(shù)GeLSlockObject獲得系統(tǒng)定義的七種畫刷;調(diào)用CreateSolidBrush定義具有指定顏色的單色畫刷;調(diào)用函數(shù)CreateHatchBrush定義具有指定陰影圖案和顏色的畫刷口上述這三個函數(shù)的返回值是畫刷句柄如何定賃映像模式?輝答:映像模兀是設-備描述農(nóng)的內(nèi)容2,其憂點毘程序員町以不必考虜輸古設備的坐標系苗況麗在一個統(tǒng)一的設峯

12、坐櫬黍中完成圖形的繪制與操fkWindowsnS神映爐摸式其中MM-TEXT映像模式得到了普遍的用用,是默認的眺像模式,甚特血是邏揖坐標旳物理坐標都以像索為單位。MMlEOTROPEC和MMANISOTROPIC兩種脫像檯貢通過和圖形從程序刊定文的邏輯設各彌口收像到物理設備的視口火實現(xiàn)坐標轉(zhuǎn)換窗I是對賊邏輯坐標系上起序員設定的一個區(qū)域視I是對應于實際輸岀說備上程序員說定i溝一個區(qū)城-定支了窗nsnn后win亦訓牡黍統(tǒng)即可按照霄利親1的坐標比例訂動訓整圈形。注a:MMISOTROPIC映像橈式雯求區(qū)卿方向的映像比例柑同,這種要求可施導致系統(tǒng)強制變換視rk應用程序可以關用函數(shù)Cih佃pMc血得到當

13、前系統(tǒng)的映腺?;?,調(diào)用函數(shù)如IM逬廠Mo氐設宜系統(tǒng)癥文加斤種映像惶或然后町以調(diào)用前數(shù)SttWindowExiEx設瞥窗口區(qū)域大小,調(diào)用函數(shù)SeLViewporLExLbx設邊視1-1的大小。視I和窗口的賦認原點均為(0,0)還iij哄調(diào)JT固數(shù)SetWjndowOrgEx車I函數(shù)SetViewpurtOrgEx來設定鹿I和視II的猱點注栽雖后這兩個國數(shù)只育在MM.SOTROPICftJMMANISOTROPIC兩種模式下才忖用。癥又了映像欖式后菠們就可以在稼H匕繪制相用闌陽形丁.第五章文本的輸出方法與字體的設置15千】如何獲取字狐句柄?解答:對以適過兩種方法探鋁字休句柄;選用系統(tǒng)提供的7種族抿

14、字體首先定義字體旬柄變屋bFHFOMIhH:熱后調(diào)用噺數(shù)hF=GeiSiockObjecK.)獲得索統(tǒng)字體句柄;調(diào)用萌數(shù)泅閒WbjQ(bdc,hF)將孑體旬柄選入設備壞境創(chuàng)鋰口定.叉字體系統(tǒng)提供的字體往往不能渦杲咸用程序肘要求.實際上中.文的亍儲是很豐宦的,口前40多種字體,程序燼町以調(diào)用函數(shù)6閃1并呦l創(chuàng)建和定義字體.并把返回苗賦蠟一句柄變凰.然后調(diào)用函數(shù)SelectObject建的字體旬柄選入垃備壞境:匡Q如何創(chuàng)建打定處字休?祥答:通過調(diào)用函數(shù)CreateFont獲得口定興字怖的旬齣該函.數(shù)的調(diào)用賤丈如卜:hP=CiciLtcFuntininHcight.iniiiWidLhinlnF!M

15、ipenit-iiLhininOiitTialtsMi,DWORDnWeisln:DWDftTlDwlMtir,DWCKDJwUndeiline,DWORDdv-StrEkeDiitDWORDdwCharset,DWORDdwOurputPretisicm,DWORDciwClippTecisitnijDWORDihyQuiiii尊”/字佯硏度,取0則采用系統(tǒng)默認值便用越輯單位宇怵寬度.取0則由乗統(tǒng)相樨高噩比咫最越值傾出邏魁單位打毎訐文寧相對于頁底的箱應,旦丨吩之曲為單位門您個丈字柑對于頁血旳餡度JJI份之應曲單位字體粗酣龐,取值范憎為!的如卑聲求字休伽.無.創(chuàng)誣北零爭/如.果要求下劃比期嚥零

16、如異竪乂刪除錢,則耿卜零字休斫屆字捋集輸出精度+馭取默認值OUTDEFAULTPRECIE剪粽精度,一般取默認怔CLIPDEFAULTPRECIS/輸出質(zhì)気,一般取默認值DEFAULTQUALLTYDWORDdwItchAndFamily,M字休的住甌及寧休的系列一般取默認袒DEFAULTPITCHDWORDIpszFiLceiumefF字休常)其中hF是字體句柄。囪m如何設宜字怵的顏色劑背雖色?解答:在字棒旬精彼創(chuàng)建后,還可以設置字體的顏&和背彊顏酋,以獲得粘關的輸出效采。應用程序通過調(diào)用歯數(shù)SetTexiColor(bdc,croior)設迎寧體顏芭,hck是設備壞境旬5crColor為設

17、置的顏色亠通過調(diào)用函數(shù)SetBkCclor(hdc,crColur)來設胃背呆頷色.丈本是如何諭出的?髀答;丈木的輸出過程包括我取字體信息、格式化文木調(diào)用函數(shù)輸出文木等具悻過程nCD荻取字體倍怠何冏程序在輸出丈本之前必顒菠眼當前便用于佈們育.艾信如當苗使川子體的尸符高度辱,以確定文木格式和卜一彳J宇符的輸出位置.程序調(diào)用函數(shù)GetTlMecrics(hdu,&lm)來慕取字體信息,甘中Im是血含字休佶息的TEXTMETRICS結(jié)構悴變気格式化文本格武化文本分兩種悟況,第一種情況是確定垢絨文本坐標,此時只耍調(diào)用函數(shù)Get-T.EExTHPoinl強得到一亍Csize翦構體變駅、該孌佩包含亍符寬度

18、信息,通過計算得到下一個亭符的X坐標.第二種情況是確定換行時的文本塑標,利叩前而得到附字休信亂姑構體Lni和當前行的Y坐標計算F行的Y塑標.文木輸出常用吋文木輸出Y/:TeKtOut.DrawTexl卿TabbcdTextOul等,苴中以函數(shù)TeUOuiM常用.這三種方法的特點見表具體的函數(shù)彤式見幫助丈件5-1二狗文豐輸川審數(shù)衲數(shù)訓明TbilDuiDtjwTextFrabbcJJcxtOut便用斗前選中的寧悴和飆色在指宦冏位置上繪亂正文字符申住緒建的矩形向根擱指建的方法幣園化文本在指逛的缸養(yǎng)上抿據(jù)指建的方法輸出罕符出第六章Windows應用程序?qū)︽I盤鼠標的響應任曲應用程序如何響衿鋰檻消思?解答

19、:讎盤作為輸入設備是Windows應用程序中卜分蚩要的輸入乎段半用戶按卜或釋放-個鍵時,讒盤KEYBOARD.DRV中的進盤中斷處理程序?qū)λ煎F進行編碼.并調(diào)用Windows的用戶模塊USEREXE中的疽關程用來產(chǎn)生鍵盤消息.扯終發(fā)送到槪川程序的消息趴列中去等待處理.鹽盤上的每一牛縫都冇一個惟一對應的標識伯,稱為掃描碼肖用戶按卜或咅釋放某鍵時,都會產(chǎn)生這平口設備肯關時掃描碼,設備腿動程序截取鍵的抽播碼后把它訥譯成為耳設備無關的虛擬碼,這樣鍵獻的輸入就吳產(chǎn)上一條消總,它包含冇掃描碼、虛擬碼以及貫他耳卅鍵仃關的信息設備驅(qū)動程序?qū)⑾⒕乘凸卫劢y(tǒng)的消息恢列中,然后山Windows將游愿従送到相畫的線程

20、消息臥列中最后,11JWndProci數(shù)從誚息弘列中取出鍵盤消息,進行型要的處理。力刊應用程序如何啊應鼠粽消息?解答:鼠標柞為一種定位爺入設務在WmdOWS町覿憂編程中得到了廣泛的用用*通過鼠標的單iti-ili和拖放功能用戶可以很容同地操柞棊于Windows界畫的應用程序.敘標驅(qū)動程序在啟動Windows時裝入,評血操牛系統(tǒng)適過甌標驅(qū)動程序能檢測出亂標足否存在;若竄標存在則設備馳動穆斥就將捕測到任何竄標審種閔肖在窗II內(nèi)冇風標事件發(fā)生時,窗丨1就按收到一牛鼠標爭件(以簾息的形或發(fā)送給應用程序的窗【1)。注詭:能按受尿林事件的鬣口一定是活動甜I或荷是貝哲輸入依點ll:鼠林消總劉表&T所示表6士

21、鼠標的消息玻其含義滿息含義WM.LB(J1I,OKDOWN,曲戶區(qū)內(nèi)槪卜鼠標左健WMLEJUTTONUP用戶區(qū)內(nèi)松開嗣標左鋌WM.LBUTTONDBLCLK用八區(qū)內(nèi)觀擊鼠標左鋌WM.MBLTTONDOWJ用戶區(qū)內(nèi)應下翳標中趣WM.MBETTONIIP用戶區(qū)內(nèi)松開鬧折中鍵WM.MBLITONDBLCLK用區(qū)內(nèi)礙疔國標中邂WMRBLTTTOtVDOWN用嚴區(qū)內(nèi)按下更標右翹wmRHtrTTOisrnp用八區(qū)內(nèi)松鼠標右腿WM-RDLfTTONDaDCLK川戶區(qū)內(nèi)楓擊鼠標右理WMMBI:TTONMOVE用戶區(qū)內(nèi)移動園標在馭標消息中.參數(shù)IParam包含了做標的WJParam的高位包含了竄標的y坐標P迎艮

22、m的低檢包含了鼠標的k坐標;參數(shù)wParam包含了一個描示各種虛擬.碼狀態(tài)的值口第七章資源在Windows編程中的應用r?簡述菜單衍循的創(chuàng)建.過程.解答:菜單是Window用戶界而中窗門的莊要組成部分,菓單可使用戶直觀地了解井方便地使用憊用瓏序所提供的各項功能-創(chuàng)建菜卑可以分為定義利加載兩個步驟定義菜單菜單在資源丈杵中的定義形式為:菜單粘MENU1詼壩離單邛判表菓單塔表示特定的菜單.應用程序適過蔬單喀加敎揩癥菜單。MBNU是關鍵字,用來表示務源的性質(zhì)=菜單項是菜單的釦戰(zhàn)部分5用PUPU和胚缶UITEM來蹇義菜申項.武中POPUP定義彈出式菜單,MENUITEM.用來定義卜擔式菜單-=在資源文件

23、中尢義了菜單資瀝啟,還需堊在頭文杵中逬丈菜單頊標識所討應的數(shù)伯“加載菜單加載菜單的方法冇三種:在窗口類中加載菜單-wndch&.IpKzMeiiiiNiinieEpsMeniLiNiinie;在創(chuàng).建窗口時加載菜單斤先調(diào)用LoedMenu加載萊單,在CreaUWindow雷數(shù)中加入:CreateWind,ow(勺*+專,.s叮hMenu9*;苴中Menu是山曲數(shù)LoadMen山返回的菜單甸柄a動態(tài)加載菜単庇用程序詡用雷數(shù)LoadMenut菜單旬柄民町以調(diào)用前數(shù)SetMenu剛態(tài)加城菜單E73I如何利用拉留費源?解答:位圖是一種數(shù)字化的圖形表示形式,是表示一亍圖像訂標的一慕列數(shù)據(jù)對于繪圖或圈片一

24、類的鉉圖,數(shù)抵屋一般牧人為了提商顯示耐新堆度,也圈操件須在內(nèi)存坤境中進行“位圏的撅柞包括宦義、加報、選入內(nèi)存設備環(huán)境和輸tLh宦殳位圖句柄定文位圖旬柄的方或如卜】HBTTMAPhRilmsp;(2加載位圖調(diào)用歯數(shù)hBitmap=LaadBilMap(.)加戟,位圖,獲得桂圖的句柄*(3選入設備環(huán)境調(diào)用畫數(shù)CreateCompatibJeDC向鎂統(tǒng)申請內(nèi)存設備山柄,癥取了內(nèi)存設備旬柄后.調(diào)用朗數(shù)SeleciObject將位圖逸入內(nèi)存技備壞境此時即可對英進行編悄.(4輸出位圖尿用程序調(diào)ffl.BHBlt將位圖從內(nèi)存設備環(huán)境中輸配到揣定的設缶上.P4如河應用時話框棗源7辭答:)ciweWMTNTTD

25、rALGG:retuin1;WM.COMMAND:brfflik;此消息處理雷既的瞬數(shù)打工窗口處理幽數(shù)冊彳幾也刈訂框處理函數(shù)的返回值與主窗I時處理函數(shù)不同,時話框消息處理國數(shù)西回BOOL偵血主窗I丨函數(shù)返回LRESULT儲;対話樁處理幽敵不處理臬些消思如WMPAINT.WMCREATE和WMDESTROY等;此外,対未定冥的誚息處理不同:主窗I陶數(shù)通過調(diào)用DefWindowProc的數(shù)完成對未定義處理過程消息的赴理,而對譏框消息處理函數(shù)如呆接叔到未定義處理過程的消息陳腿回FALSE(return0)。關閉対鈉框在村詁框消息處理毆數(shù)中的合適位皆調(diào)用歯數(shù)EndDialog來關閉燉祜框“用模態(tài)對話樞

26、”的編視片模態(tài)時詡lir的編程類飲但在定義創(chuàng)建及清息處理上有些差別定義的不同主要在設宜選項上:“養(yǎng)模態(tài)對話框”的樣式一般為:STYLEWS.POPUPIWSCAPT1ONIWSVISIBLE,注運拝武中一定要包含WWVf?!BLE,否則對試框不能顯示H來口要調(diào)用西數(shù)CnfttcDialog來創(chuàng)建和顯示席話框。在主窗口消息處理程序中的消息讎壞中必須包含餓扶爰往1TF模態(tài)對詁框”的消息:井將H發(fā)送到相威怖消息處理函數(shù)中去處理的爲句。女収whiJeGetMessage(tems,NULL,0,0)if(!laDialDgMessaelhDtgj&)趾函數(shù)刊斷消息是否發(fā)連對箱框(TthnsIaiuMm

27、SJLgo&Tj)sg);DispaIrhMessage(&trh);1獲閉“非橈態(tài)對話框時,製調(diào)用曲數(shù)RestroyWindow.F-&)“模態(tài)對詁框”與心模戀對詒樞”何何區(qū)別?在輪程上有何不冋?解答:(門“檯態(tài)對話荊r不允許用戶在光閉對話樞上前切換到應用梶序的其他窗口?!摆嗝B(tài)對話框”允許用戶在該對活框與應用程序之閭來回切換。IF模態(tài)對窗艇”從WinMaJn函數(shù)的悄息循壞中按受輸入在編程上f非欖態(tài)對話樞”在定義資顋時,必須在設置選項中電含WSVISI-BLE,否則不能顯示匚4)*橈態(tài)對話框”調(diào)用函數(shù)DialugBox來顯亦對話框,護非模態(tài)對站框”調(diào)用函數(shù)CrealeDiLilog來顯示對話

28、権=“非模態(tài)對詁和i廿需要在主函數(shù)的誚息循環(huán)中截按時話框消恵,但“模態(tài)對話框”不諧耍。(6模態(tài)對話框調(diào)用函數(shù)EndDiaiog其閉對詁框。模態(tài)對話框調(diào)用國數(shù)DcstroyWiridow來天閉對站樞a“創(chuàng)如何利用瀏標覚源7孵答:一令圖標代表一個應用程序的特味雖小位崗當在圏標上嘆姑鼠標左犍就可以執(zhí)行該程序。圈標的操作類似于前而淡到的位圖操作,也要經(jīng)歷圏標的創(chuàng)建莊資源丈件中的定叉、圏標的制我零步騾.慍標的創(chuàng)建用戶可以利用Windows自定義的圖標,也可以通過瀏形編輯器自定文圖標玉式也在蹩源文件中自定義関標肖采用自定義圖標形式Bf,要在費源文件中擁入如卜代碼:闍標名TCON圈標.文樺卓在應用程序中力I

29、I我圈標應用理序是通過凋用函數(shù)LcKKHsri來進行圈標的加載的,此過程經(jīng)常在定義窗丨丨類時進行隼式為:wndclmss.himnLoadleant):第八章MFC基礎知識辯田MFC類層次中工取包舎了哪些類?解答:類層次中主更包含以下各類:CDbjtxt類,它足MFC抽象革類,是MFC中第數(shù)類利口定義子類的根類,它為程序員捉供了許冬編程所需的公共操(仁這些操作包拒:對裂的建立和刪除、氷行化支持、對錄診斷輸出、運行吋信息以及集合類的兼容零.用程序體系皓構類:它能提供多數(shù)應用程序公用的功能應用程序類主耍包含了與命令相關的洪、宙口應.用程序:類、玄秒觀類和線程菇攤等。可視對曙類,它主耍包括:CWin

30、l窗IJ茨我婁提供丁MFC中所有窗口的承本功能,它是CCmdTargel類的基炎;CView視類該類農(nóng)示框架窗I的客戶區(qū)和顯示丈桂數(shù)拯并接竇輸入的客戶區(qū);CMenu菜單類該類足CObject類的于英用于管理菜單;Crilog對話框類,該iCWnd攤中派生出來,対話框子層次皓構包括通用對-詁樞類CDi汩諂以及支持文件選樣、蝕邑選擇r字體選擇r打印、替換.文本的公共對話框類;控杵類,揑件了-層次結(jié)構包拈若T類使用這些類可以建芒靜態(tài)文本、金令按鈕、位圖按毓同J表樞等;CCottfi-aJBit-控件界類,控件條子鉛構為工具條、狀態(tài)條.對訂荼祁分割留i楚立模型;CCdiObjeel繪麗對象類,圖闿繪畫

31、對:象子層枚結(jié)掏以CGdiObject類為根類,可以川于建立繪畫對彖模型,如畫筆、畫刷、字林、位圖、調(diào)色板等;CEC備描述表類,該類及其子類交持設備描述表対揚,是CObjecl類的子類.踴用類此分類中的類提供了很甫通用腮勞.側(cè)如立件卩【)、診斷和樣常杜那等”包括CFi抵類和CAtche.CExceplion扳收集類等&(5)OLE宛對象連接與嵌入(OLE)子忌次站構為支持OLE提供了9個類,分為3種:普迪類客尸類和服務器類.(GODBC數(shù)據(jù)庫饕,開放數(shù)據(jù)庫連接子層次給構提供了一些類來支持ODBC的特征.即適過這燉類可訐發(fā)數(shù)據(jù)庫戰(zhàn)用捏序來訪間密牛數(shù)據(jù)庫立件.該層找給構中上要包含CDaiaBase

32、類xCRecordSel類CRecordView類等-D421如訶應用應用程序向?qū)??解?VisualC+6.0為了減輕輕序員的工件睫,特別増強了應用程序的向?qū)Чδ茇蚊加醚e序向?qū)Ь谐绦騿T提供了一個基于MFC!的脫用程序框架,程序員只要在此慕礎上增加實現(xiàn)搟定功能的代碼即可一般通過以卜一場驟來實說:衽Ntw対話植(如各|S-t中所示)中選擇MFCAppWizard(exe),ProjectNaine文本框中輸入新建的項口粘如My.PrujecL,單擊QK鈕在彈出的MFCAppWiz.ard-iStep1對話框.如圖8竝所示)中可以設置應月程序的類型.指定網(wǎng)用程序膽結(jié)構是否采用立襠器L圖魴構.以及資

33、源文件所使用的語種等應用程序類型主要何據(jù):單文檔應H1程序,多文檔應JB程序,菇于對話框的應用程序在岳坤列我框中一般選癢中文作拘贄派文件的語種a單ih闌$逐中的Nexl按鈕,將彈出MFCAppWizardlep2試6對話框(如圈g書所示A在此對話框中毀國臧用程學所使用的數(shù)期庫支持,它有匹種選壩默認值足None.忍略所有的數(shù)據(jù)庫玄持-選擇應用程序的數(shù)據(jù)庫支持后+單占按鈕,彈出MFCAppWi如代1壞3of6燉詁框(如陽&4所和=蠱此蔵話框中町以設謾應用程序所交持的復合文檔類型。這一涉使程序負可以向應用程序切入OLE立持,設冒完后,單擊Nzt按鈕,將進入MFC?AppWizard-Sicp斗就各對

34、話框如圈8-5所示h在此可此設置程序的外觀,如是否便用工具欄、是否有初始狀態(tài)出是否使用3D控件等等設首后舉市Ncm按釧,進入MFCAppWizardStep5of6對話如圖Kft所示)-在此可以粽窗丨1惋格設國為標準鳳格或WindowsExplorer鳳格.還可以設置是否在向用捏序中工成代碼注粹,是咲艾宇動態(tài)銃按庫還臺以靜念就按庫的力貳便用MFC庫等方式-說宜完啟,單山M就I按鈕,址入MbCAppwitirdStep6of6對訕框(如闍Z所示)在此可以設置向?qū)傻奈募铑惷?設置后r單Finish按鈕,彈岀NewProjectInformation對話框(如圖88所示)*在該對劉框中列出了

35、關于建立的應用程序項日文件的相關償息-這樣應用程序向?qū)敼ぷ骶腿客瓿闪讼驅(qū)б呀?jīng)為用戶生成了一個叮執(zhí)的應用程序框架,侶專在應用程序向?qū)е心軌騽?chuàng)建哪些類型的文件?解答:VisualC+6D可以創(chuàng)建的丈件類型如農(nóng)H所示.VisualC卄6成創(chuàng)崖的文件樂刑文件爽型饑明文件莢製謝聊ActweSgtterligcBitmapFUeGC+HoudciFikHTMLl嗨創(chuàng)建活動孵錚番創(chuàng)建位岡丈杵&Joc卄頭文件創(chuàng)建HTML文件BimryKileC-H-StMirceFileCLLisarFUefexjuFilm創(chuàng)建一進曲文件邇建C+爾文件巡建光標文怦垃建圈掠文件MdfruFileRtouiHLCTcti

36、jpkleTextFile RtfiuurtcScrip!SQLScriptFlit創(chuàng)建資源腳本文件削建呂QL腳本文件創(chuàng)建宏文件創(chuàng)建敢源模威立件創(chuàng)建立本立件第九章Windows標準控件在可視化編程中的應用眇41常用控件祁哪些類型?解Windows提供了從蚩的控件.具中常用的控件主豐包抵:按鈕控件濫動條控件、靜態(tài)控件、列農(nóng)桓控件、編輯桓控件、爼合框控件.控件為可裡化編理提供了方便快捷的途徑。9勻按鈕控件的特點是什么?懈答:按釧控件是Windows用程序中攝常用的控件才一,它的種類較多,功能豐宮“如仔普通扶鈕15嚴單選杭鍛”嚴負選按鈕”和代爼合框按朝捋”“轡遇按鈕”上可以貴置文本和加載位圏廣單選按

37、鈕”具有互斥性,當選中棊一牛選項時,其他的選項自動取消;復選按鈕”可以允許用戶進行務項選擇f1組合框按鈕是一種特殊的按鈕:既奉牡理鼠標和鍵撇檢入,也不向具父務口發(fā)送消恩使用它主要是使畀面整齊.按鈕作為-種T-窗,可以具有一些窗匚|前樣式,另外還具有很多獨特的樣式am按忸控件是如何應用的?解答:按鈕是一種北常巾用的控件它具冇若干用導燉于接收來白用戶陸命令或響附,一個卜壓武按機足適當?shù)淖V擇箱存在若個互相排斥的數(shù)抑項,一紐單選按鈕是脂址用戶選擇的方便的方法如果若干個選項之間不互相排斥,一組復選框是比較好的握擇。若要創(chuàng)建一個框架,將苴柚的揑件包圉在B;中,則常使用分組框。9如按翅揑件分為幾類?解答:在

38、Winduwy中主要有四種按鈕:復選框(CheckbM弟)、單一選按鈕(RadiobuL-tqct)F壓式按鈕Pu百hbiLttoii的和分組梔(Or與pbjo覽軸)抄劇各種按鈕控件的類是如何定義的?解答:CEuLton是CWnd炎的派生類,它同時貝CWnd艾的一切功能“類中的函數(shù)按照功能分為3舅:(i)創(chuàng)理利初始化喑數(shù):拘造函數(shù)用來初始化C帥1伽真對象;Created窗口的指定儻置創(chuàng)建CBullim對釦常用的CButton對彖方法:GetStaie獲得一牛按鈕控件的選中、隹擇和聚焦狀態(tài)iSetState喪置一牛按鈕愉選擇狀態(tài);GetCheck得到一個按鈕的選中吹態(tài);SeiCHeck設雪一個按

39、釗的選中狀態(tài);GelButlonSlyle獲得一個按鈕I的樣武;SetBuItonSLyle設定-個按鈕的njSetBkmap設定按凱上顯示IjGetBkmap獲得按鈕上顯示位圈的旬柄俘析拗函數(shù)B初哪些按鈕控件需要初始化?脾答:單選按鈕利復選框按齟需要初始化.B刊滾動條分為凡類?其類結(jié)構是如何宣義的?解答:滾動條分為“垂宜懷動條和“水平滾動紂炳種.滾動條:萸是CWnd的派生類它同時繼承TCWnd的所有功能.類中宦義貫函數(shù)按服功能分為3類(1)創(chuàng)建和初始優(yōu)禹數(shù):包括CScrolJBar構遙附數(shù).Create曲數(shù)用于在窗口中創(chuàng)建一個滾動條: (2)滾動第類方法歯數(shù):主要包括設置滾動茶滾動范掛的函數(shù)

40、SetScrolUange,設麗消塊位置的幽數(shù)SeIScroll位遊的味數(shù)GctScrdlPo,設進懐動條信息函數(shù)SetScrollInfo,獲得滾動條信息函數(shù)GetScrallInTo等;f3)折構函數(shù)話罰滾動條控杵是如何進行消息傳遞的?解答:一令fdFC程序需址理兩種.來口滾動條的消恩,這些消思町以誼過消息映像項和消息處理程庫來完成*我AF是兩個獲息映像項.表!Ft消息映債頊消息映像意義ON.WMl5iCROI.L斗水平滾動條位閤變化時一水平樓動峯覽送此誚總ONWMVSCKOLL當垂頁滾功條便置變化時,垂百灤動秦爰送此消崑看起來迭個控件只冇很少的消倉.隹實際上這兩個消總映像中乜含了仆常半富

41、的佶息.MFC通過兩于消息處理謝數(shù)OnHScroll.flIOnVScrull來處理這兩條消息,這兩個消息的徵型聲明如卜一:afxms.votilOLtHScrullfU1NTnSBCude,LINTnPos,CiicrullEkirpScrollBiir)afx.msgvoidOnVScroll(UlNTnSECcde,UINTnPus.CtcfollBdirTpSmiNBitr貝中pScrollBat針捋向發(fā)送消總旳滾動條搜件.慮BS血扌斤明了一個町能的謖動茶代碼,也就是用戶村滾動條按作的類型(如表9占所示)-參數(shù)tiPm只有當通知代瑪為塵歐THIJMRPOSITFON利SBTHUMBTR

42、ACKJ仃效,表示円血滑塊時位査.用戶只需根揺系統(tǒng)俊趣進來的消奩來進行相尿的處理即可表2滾動綣的通知代殆通鈿代碼1含.ZBBOTTOM用戶按End建轅動御戢大值SBENTJSCROLL陽戶釋放一個鍵-發(fā)送一些虛鍵碼WM一KETOWN)滾動停止SBLINEDOWN向下漉一行SBLINEUP向上嚷一,訂SBLINELEFT向左滾-”行SBLINERIGHT腳右滾一荷SBPAGEDOWN向卜滝一頁SBPAGEUP向上滾-頁SBPAGELBFT向左礎一頁SBPAGLRIGHT向右滾一MSBTHUMBPOSITION拖動到絕對也豈SBTHUMBTRACT拖動滑塊到指泄的位冒SBTOP用戶煦動Home鍵,

43、滾初劉最小值杪劃編輯框控仰是如何便用的?郵答:在麼用Z前一定要創(chuàng)建編緝框控件,有兩種方法町以創(chuàng)建編輯框控件:刑用VisualC+-6jOfq帶財資源編輯鬍,把編輯框揑件放匿在指定的対詁框窗1-1的合適位應,燃.后利用ClassWizard把送個編輯框控件利一個CEdnJ象聯(lián)條起來。在程序中宦義一個CHdit対象鬧用Create為編悒樁控件設酉參數(shù)和樣式來初始化EE曲対象然后我們就對以調(diào)用各種編輯框方法來使用編輯框,常用的方法如下:Cu心方法將編軻框中旳文本拷貝到勇珮板;Cut方怯將騙輯框中的文本剪貼到剪貼板;P狛上方法將剪妙板中的.數(shù)抓插人到編輯框控件中光標所在的位置上;Clear方袪刪除編輯

44、框中為前的選釋;CauUndo方法決定一人纏輯框操作是否可以撤銷;Undo方法取消編輯框中的罠后一次的操柞;SetSel在編輯框中設定選掙的范圍;Replacescl方法用招定的更本來代替選中的文本;GetSei方法獲得編輯框控件中當前選揮的開始和結(jié)束字符的位置.抄劉】編輯框控件的類谿鞫是如何宦義的?解答:MFr在類廣珂冊中捉供了標萍的Windows編掛握控杵朋勞”廣閔討是。附胡類的冑接淀生炎這就意味著它MSCWndft所有功能-作砒類的定義結(jié)構很復雜,我們可以把謫類的函數(shù)按功能作如下劃分:榕適隨I數(shù)CEdii函數(shù)用來初始化CHdit對繪;Ue址e阱數(shù)用來在窗口的合適位訝上建立編輯框控件砸用C

45、Edit類方法等剪貼梶操作儒.數(shù);Undm1cltleCDnitiitfi()KeleaseFilet)SjLVfiMt)dified()JsMcdificd()SetModifiedFhgOGetHrsrViev卩飾i你】m0由炳FC調(diào)用來更宜文檔由MFC訓用來打開文檔由來保存文檔由訓用來關閉立檔磁企觀家文檔的框架窗口是否被允許關莊在耒撤銷文檔對象吋刪除文檔數(shù)州禪敢文件以允許牡他向用程睜蝕舟査詢文描的慘改狀態(tài)井存儲修改的文檔碗建文檔從它晟后一次存儲后見否披修訂過設置文檔從它蚊后一次存儲甘是否被修訂過的冇爾值機得視圈列麥頭的恆頁我需視韌列表的V個祗岡CDacumeni的派生炎的構造步騾是如何進

46、廳的?解笞:一膛探說,從CDncumtM類派生口的史檔類所需胸典型步驟為:為每k文檔尖羽從CDocument尖(肖然也可以懸只他CDocunienl類的派生 類)派生一個相應的文檔類a刃丈檔類添加成員變蛍.這些成員變議用來保存丈檔的數(shù)據(jù),其他對喙如有丈1和天聯(lián)的覘圖)H接或剛按地訪何迖蘭成員變哉米讀取或更新文檔的數(shù)拯一SeriaEzc成-員腑數(shù)實現(xiàn).文檔數(shù)據(jù)的串荷化。ft11文檔模板類的結(jié)構是汕厠定義的?解答:文襠摸板類CDocTempire是從CTnuJTiirg航婁卜派0:的工DocTginphi対類提供了文檔模板類所需要的最幕木的功能賽現(xiàn)它提供的方法分別是一般方法和虛擬方法(如表11T所

47、示1。表11-3CDdTtiiiplirtE類的方法方法說明GeLDucStringO獲得與立檔柑關的字符幣Load!emp1ate(加載指泄的模板AdilDocumentO給文檔模板潛加指世的模板RcTnoveDDcmncntf從文檔模板列表中刪除文檔GetFirKlDocP(jsitiDD()莪得與文期模板相關的第一牛丈悄的位豈GetNextEocC)獲得文畧及下一個文檔CreateNewDuuninea1()建立文檔CreateNewFraTue()建立包含文檔和視聞的框架窗11OpenDiTCUTnentHilei)盯丿卜由路粋粥指罡購文膽iCfoneAilDt)cument()關聞所

48、有文檔SctDcfsinltTitlc()豆示文檔窗口的標題欄中默認的標題SaveAaiMcxlid()査詢文梢模廡旳倏改狀態(tài)并存儲與之關喉的所冇文檔在M+6.0収主檔類占丈檔次相關朕的視圖類以及為視圖類捉供屋示的框架窗口都是山丈檔模板創(chuàng)建的.每一種丈榔類型都有一種文檔橈板與之相對恢,丈檔模板員資創(chuàng)建和管理該文檔類型的所脊文檔.文檔、視圈和框架二若之何的聯(lián)系是通過文檔模膠的構造闊數(shù)來實現(xiàn)的&W視閨類的給構是如何定義的?解答:CW伽V類UCWnd類F誕生的,由爭所有的從Ciidw類淀生的類也娜建由FWrul類間接派生的,所仃的這些糞都具仃CWnd的所有功能|創(chuàng)建、移動、顯那和隱藏窗口,岡此CViewnJl接枚任何Windows消息,CView類提供了文檔類所需更的疑族本的功能實現(xiàn)官提供的方擺分別是一般方法和塩擬方梏(1)一旣方祛:一般方法如表所示a表11凋皿訓類的一股方法方法說明GqjlDvuuineril()DoPrcporcPinmting()荻得描向弓視陽躺犬聯(lián)的文檔的惜計設這打印預覽(2)虛擬方法:虛擬方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論