Windows程序設計題(含簡答題答案)_第1頁
Windows程序設計題(含簡答題答案)_第2頁
Windows程序設計題(含簡答題答案)_第3頁
Windows程序設計題(含簡答題答案)_第4頁
Windows程序設計題(含簡答題答案)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Windows程序設計題(含簡答題答案)Windows程序設計題(含簡答題答案)Windows程序設計題(含簡答題答案)Windows程序設計題(含簡答題答案)編制僅供參考審核批準生效日期地址:電話:傳真:郵編:《Windows程序設計》模擬題單項選擇題1.在VC++中,項目文件的擴展名是(B)。A)exe B)dspdsw D)cpp2.在MFC中,利用ClassWizard不能(D)。A)建立新類 B)進行消息映射增加類的成員變量 D)插入資源3.當滑塊滑動時,滑塊條控件將發(fā)送滾動消息來通知父窗口,垂直滑動條發(fā)送(C)消息。A)WM_CHAR B)WM_HSCROLLWM_VSCROLL D)WM_CHANGE4.更新菜單狀態(tài)的消息是(C)。A)WM_COMMANDB)UPDATEC)UPDATE_COMMAND_UID)INVALIDATE5.對于消息隊列描述正確的是(D)A)在Windows中只有一個消息系統(tǒng),即系統(tǒng)消息隊列。消息隊列是一個系統(tǒng)定義的數(shù)據(jù)結構,用于臨時存儲消息。B)系統(tǒng)可從消息隊列將信息直接發(fā)給窗口。另外,每個正在Windows下運行的應用程序都有自己的消息隊列。C)系統(tǒng)消息隊列中的每個消息最終都要被USER模塊傳送到應用程序的消息隊列中去。應用程序的消息對列中存儲了程序的所有窗口的全部消息。D)以上都正確6.在MFC中,所有的控件都是(B)類的派生類,都可以作為一個特殊的窗口來處理。A)CView B)CWndCWindow D)CDialog7.使用GetDC()獲取的設備上下文在退出時,必須調(diào)用(A)釋放設備上下文。A)ReleaseDC() B)delete()DeleteDC() D)Detach()8.希望菜單無效,應該用CCmdUI類的(A)成員函數(shù)。A)Enable B)SetRadioSetCheck D)SetText9.希望菜單前出現(xiàn)一個“√”,應該用CCmdUI類的(C)成員函數(shù)。A)Enable B)SetRadioC)SetCheck D)SetText10.下面(A)不是MFC設備環(huán)境類CDC類的派生類。A)GDI B)CPaintDCCClientDC D)CWindowDC11.在MFC中,所有的文檔類都派生于(C),所有的視圖類都派生于(A)。A)CViewB)CWindowC)CDocumentD)CFormView12.采用C++進行繪圖時,(B)用于指定圖形的填充樣式,(A)用于指定圖形的邊框樣式。A)畫筆B)畫刷C)區(qū)域D)位圖13.(C)包括鍵盤和鼠標的輸入。這一類消息首先放在系統(tǒng)消息隊列中,然后由Windows將它們送入應用程序消息隊列中,由程序來處理消息。A)系統(tǒng)消息 B)用戶消息輸入消息 D)控制消息14.項目文件的擴展名是(B)。A)exeB)dspC)dswD)cpp15.在MFC中,文檔負責將數(shù)據(jù)存儲到永久存儲介質(zhì)中,通常是磁盤文件或數(shù)據(jù)庫,存取過程稱為(B)。 A)文件訪問B)串行化C)文件讀寫D)格式化16.在VC++在編程環(huán)境中,運行程序的快捷鍵是(A)。A)Ctrl+F5 B)F7C)Ctrl+F7 D)F517.在VC++在編程環(huán)境中,設置和取消斷點的快捷鍵都是(A)。A)F9 B)F5C)F11 D)F1018.在MFC中,在編輯某菜單項時,若要指明該菜單項是一個彈出式子菜單,必須選擇屬性對話框中的(B)。A)Separator B)Pop-upC)Inactive D)Grayed19.使用GetWindowDC()和GetDC()獲取的設備上下文在退出時,必須調(diào)用(C)釋放設備上下文。 A)DeleteDC()B)delete()C)ReleaseDC()D)Detach()20.在MFC中,(B)代表窗口客戶區(qū)的顯示設備上下文,(C)代表整個窗口的顯示設備上下文。A)CPaintDCB)CClientDCC)CWindowDCD)CMetaFileDC21.對話框的功能被封裝在(B)類中。A)CWnd B)CDialogCObject D)CCmdTarget22.(C)包括鍵盤和鼠標的輸入。這一類消息首先放在系統(tǒng)消息隊列中,然后由Windows將它們送入應用程序消息隊列中,由程序來處理消息;(D)用來與Windows的控制對象,如列表框、按鈕、復選框等進行雙向通信。當用戶在列表框中改動當前選擇或改變了復選框的狀態(tài)時發(fā)出此類消息。A)系統(tǒng)消息B)用戶消息C)輸入消息D)控制消息23. 生成1個只具有確定和取消按鈕的消息框,其參數(shù)為(C)。 A) MB_OKB)MB_YESNOC) MB_OKCANCELD)MB_RETRYCANCEL24.在Windows程序設計中如果加入了滾動條。設置滾動條的范圍使用(C)函數(shù),設置滾動條的位置使用(E)函數(shù),獲得滾動塊的當前位置使用(F)函數(shù)。A)SetPos() B)SetRange()C)SetScrollRange() D)GetPos()E)SetScrollPos() F)GetScrollPos()G)GetScrollRange()25.消息循環(huán)的處理過程如下:(A)函數(shù)不斷偵察應用程序的消息隊列,若隊列為空,該函數(shù)一直運行,不返回;一旦發(fā)現(xiàn)隊列不為空,便取出一條消息,把它拷貝到msg結構變量中,同時該函數(shù)返回TRUE;得到消息msg后,(B)把來自鍵盤的命令翻譯成WM_XXX消息命令形式。(E)函數(shù)通知Windows把每個消息分發(fā)給相應的窗口函數(shù)。應用程序并不直接調(diào)用窗口函數(shù),而由Windows根據(jù)消息去調(diào)用窗口函數(shù),因此,窗口函數(shù)經(jīng)常被稱為回調(diào)函數(shù)。A)GetMessage()B)translateMessage()C)PostMessage()D)SendMessage()E)DispatchMessage()26. 如果要嚴格按照匈牙利命名法命名1個局部窗口句柄,以下變量命名正確的是(B)。A) g_hWndB)m_hWndC) g_pWndD) m_pWnd27. 在Windows編程約定中,應用程序接口的英文縮寫是(A)。A)APIB)SDIC)GDID)MDI28. 在Windows編程約定中,軟件開發(fā)包的英文縮寫是(C)。A) APIB) SDIC) SDKD) MDI29. 在Windows編程約定中,圖像設備接口的英文縮寫是(C)。A) APIB) SDIC) GDID) MDI30. 以下對應于unsignedlong的數(shù)據(jù)類型為:(B)A) WORDB)DWORDC)INTD) BYTE31. 下列選項中,不屬于匈牙利命名法屬性部分的是(D)。A) g_B) m_C) c_D)d_32. 如果要嚴格按照匈牙利命名法命名1個全局窗口句柄,以下變量命名正確的是(A)。A) g_hWndB)m_hWndC) g_pWndD) m_pWnd33. 下列Windows數(shù)據(jù)格式中,代表設備句柄的是(B)。A) HWNDB)HDCC) HINSTANCED)HFONT 34. "在一個窗口的正常運行的Windows程序中,把主窗口創(chuàng)建語句做如下改動:hWnd=CreateWindow(NULL,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);則下列說法正確的是(C)。" A) 程序仍然正常運行,與改動前相比沒有變化B) 程序出現(xiàn)編譯錯誤C) 程序編譯通過,但沒有窗口顯示D) 程序正常運行,窗口標題變?yōu)镹ULL35. 典型的Windows窗口程序的流程為:(A) A) 注冊窗口類->創(chuàng)建窗口->顯示窗口->更新窗口->消息循環(huán)B) 創(chuàng)建窗口->注冊窗口類->顯示窗口->更新窗口->消息循環(huán)C) 創(chuàng)建窗口->注冊窗口類->顯示窗口->更新窗口->消息循環(huán)D) 注冊窗口類->創(chuàng)建窗口->更新窗口->顯示窗口->消息循環(huán)36. 菜單編輯器中,如果要設置某個項為分隔線,那么這個項的哪個屬性為true。(D)A) VisibleB)GrayedC) EnableD) Separator37. 在Windows消息機制中,菜單消息類型是:(B)A) WM_PAINTB) WM_COMMANDC) WM_CREATED) WM_CLOSE38. 在Windows編程中,代表鍵盤的"↑"鍵的虛擬鍵值是(A)。A) VK_UPB) WM_KEYDOWNC) WM_KEYUPD) VK_DOWN39. 在Windows編程中,響應鍵盤按鍵按下消息的Windows消息是(B)。A) VK_UPB) WM_KEYDOWNC) WM_KEYUPD) VK_DOWN40. 在Windows編程中,按下鍵盤的"A"鍵后,返回的Windows消息是(B)。A) VK_AB) WM_KEYDOWNC) AD) DIK_A41. 在Windows編程中,按下鼠標左鍵產(chǎn)生的Windows消息是(B)。A) WM_KEYDOWNB)WM_LBUTTONDOWNC) WM_LEFTD)WM_RBUTTONDOWN42. 下列哪個縮寫是微軟提供的C++語言的幫助庫(B)A) MFCB)MSDNC)APID)SDK43. Windows編程中,定時器消息是(B)A) WM_TIMEB)WM_TIMERC) WM_ON_TIMED)WM_COMMAND 44. GDI環(huán)境中,窗口的坐標系是如何構成的(D)A) 左上角為原點,x軸正方向為水平向右,y軸正方向為豎直朝上B) 中間為原點,x軸正方向為水平向右,y軸正方向為豎直朝上C) 左下角為原點,x軸正方向為水平向右,y軸正方向為豎直朝下D) 左上角為原點,x軸正方向為水平向右,y軸正方向為豎直向下45. 以下選項中,GDI不能支持的是:(B) A) 位圖B)Flash動畫C) 直線和曲線D)文字46. 設備環(huán)境DC的全稱為: (B)A) DeviceContentB) DeviceContextsC) DeviceConfigD) DeviceConter47. InvalidateRect的作用是 (B)A) 刪除一個矩形B)使一個矩行區(qū)域變?yōu)闊o效,從而可以重繪C) 使一個矩形區(qū)域變?yōu)闊o效,從而釋放部分GDI資源D) 擦除一個矩形區(qū)域48. "已知窗口為缺省狀態(tài),有如下代碼:HDChdc=GetDC(hWnd);HPENhpen=CreatePen(1,1,RGB(255,0,0));SelectObject(hdc,hpen);Ellipse(hdc,050,50,200,200);則這段代碼的執(zhí)行效果是(B)。" A) 繪制1個黑色的橢圓形邊框,無填充顏色B) 繪制1個紅色的橢圓形邊框,無填充顏色C) 繪制1個黑色的橢圓形,填充為黑色,無邊框D) 繪制1個紅色的橢圓形,填充為紅色,無邊框49. "已知有如下代碼:HDChDC=GetDC(hWnd);LineTo(hDC,100,100);則這段代碼的執(zhí)行效果是(A)。" A) 從窗口的左上角至坐標(100,100)繪制1條直線B) 沒有繪制任何圖形C) 從窗口的任意一點開始至坐標(100,100)繪制1條直線D) 從鼠標在窗口的位置至坐標(100,100)繪制一條直線50. 以下函數(shù)中不受畫刷影響的函數(shù)是:(C) A) RectangleB)EllipseC) LineToD)Polygon51. 如果要創(chuàng)建一個宋體字體,那么字體描述中哪個屬性為“宋體”(C)A) lfCharSetB)lfQualityC) lfFaceNameD)lfStrikeOut52. 在Windows編程約定中,位圖句柄為(B)。 A) HGDIB)HBITMAPC) HDCD)HPEN53. 下面哪個步驟能實現(xiàn)透明貼圖(模板位圖為單色的1位位圖)(A) A) 位圖和背景像素作異或操作->使用模板位圖作與操作->原位圖與背景作異或操作B) 使用模板位圖作與操作->原位圖與背景作異或操作->位圖和背景像素作異或操作C) 位圖和背景像素作異或操作->原位圖與背景作異或操作->使用模板位圖作與操作D) 位圖與背景作異或操作->位圖和背景像素作異或操作->使用模板位圖作與操作54. 在BitBlt函數(shù)中進行光柵化處理方式中,哪1個值說明是要進行或運算 (D)A) SRCANDB)SRCCOPYC) SRCINVERTD)SRCPAINT55. 動態(tài)鏈接庫文件的后綴名為(B)。 A) libB)dllC) exeD)obj多選題1. 已知嚴格按照匈牙利命名法命名的變量m_pTemp,則以下說法正確的是(BC)。A) 該變量是1個全局變量B) 該變量是1個類成員變量C) 該變量是1個指針變量D) 該變量一定是1個私有變量2 下列哪種情況下系統(tǒng)可能向窗口發(fā)送WM_PAINT消息(ABCD) A) 窗口最初創(chuàng)建時B) 窗口移動后部分區(qū)域由不可見變?yōu)榭梢奀) 窗口大小改變后D) 滾動條滾動后3. 在注冊窗口類中,不需要進行的操作是(BC)。 A) 載入圖標B) 確定窗口大小C) 確定窗口標題D) 確定窗口類名稱4. 關于PeekMessage和GetMessage的說法正確的是(AB) A) PeekMessage立即返回B) GetMessage將會等待消息到來C) PeekMessage等待消息到來D) GetMessage立即返回5. 關于動態(tài)菜單,以下說法正確的是(BD)。 A) 函數(shù)LoadMenu可以彈出菜單B) 函數(shù)CreatMenu用于建立空菜單C) 函數(shù)DeleteMenu用于刪除整個菜單D) 函數(shù)InsertMenu用于在菜單中插入1個菜單項6. 以下關于Windows的鼠標消息,說法正確的是(BD)。 A) 鼠標的按鍵消息種類可以從wParam中得到B) 鼠標的按鍵消息種類可以從message中得到C) 鼠標的位置信息可以從wParam中得到D) 鼠標的位置信息可以從lParam中得到7. 已知語句SetTimer(NULL,1,100,NULL),則以下說法正確的是(AD)。 A) 設置了一個定時器,該定時器不能正常起作用B) 設置一個定時器,能夠正常起作用C) 設置了一個定時器,時間間隔為1秒D) 設置了一個定時器,時間間隔為100毫秒8. 下列選項中屬于WindowsGDI資源的是(ABC)。 A) 位圖B) 畫筆C) 字體D) 窗口9. 能用于繪制直線的函數(shù)為:(AB)A) LineToB) PolylineC) ArcD) PolyBezier 10. 畫筆的線型包括:(ABD)A) 實線B) 點劃線C) 波浪線D) 虛線 11. 創(chuàng)建畫刷的函數(shù)有: (ABC)A) CreateHatchBrushB) CreateSolidBrushC) CreatePatternBrushD) CreateLogicBrush 12. 在Windows消息機制中,消息系統(tǒng)3大關鍵要素是(ABC)。 A) 消息隊列B) 消息循環(huán)C) 消息處理函數(shù)D) 消息映射13.下列哪種情況下系統(tǒng)可能向窗口發(fā)送WM_PAINT消息(BCD)A)窗口最初創(chuàng)建時B)窗口移動后部分區(qū)域由不可見變?yōu)榭梢奀)窗口大小改變后D)滾動條滾動后14.匈牙利表示法的變量一般分為哪幾個部分(ABC)A)屬性(例如g_)B)類型C)描述D)后綴15.下列選項中,可以用Windows句柄標識的有(ABD)。A)窗口B)文件C)消息D)字體16.關于Windows句柄,下列說法正確的是(AD)。A)每個運行著的Windows程序都有對應的Windows實例句柄B)同1個Windows程序打開多次時,對應同1個實例句柄C)1個Windows實例句柄只能對應1個窗口句柄D)1個Windows實例句柄可以對應多個窗口句柄三、名詞解釋1、事件:可能觸發(fā)計算機程序做出相應反應的刺激2、句柄:為了區(qū)別于普通變量的標識,Windows把這種復雜對象的標識叫做句柄3、消息:為了描述事件的各種信息(例如,何時何地發(fā)生了何種事件等),Windows定義了一個結構,這個結構就叫做”消息”4、Windows的API函數(shù):由操作系統(tǒng)提供的,用戶可以使用的函數(shù)就叫做API5、WindowsSDK程序:使用軟件開發(fā)工具包開發(fā)出來的Windows應用程序6、資源:資源就是一種可供Windows應用程序利用,可單獨編輯,并可動態(tài)加載的數(shù)據(jù)7、圖象設備接口(GDI):Windows把用于改變DC屬性的操作,即與繪圖相關的操作都制作成函數(shù),這些函數(shù)的集合就叫做圖形設備接口8、CDC類:在面向?qū)ο蟪绦蛟O計思想中,把DC和GDI函數(shù)封裝到一起形成CDC類 9、回調(diào)函數(shù):系統(tǒng)調(diào)用用戶編寫的函數(shù)過程叫做“回調(diào)”,所以這種被系統(tǒng)調(diào)用的函數(shù)也叫做“回調(diào)函數(shù)”10、無效顯示區(qū):在有效提高拆分窗口顯示更新效率的方法中,程序只重繪必須重繪的區(qū)域11、控件:Windows設計了一些具有圖形外觀的程序?qū)嶓w,這些程序?qū)嶓w在鼠標或鍵盤的作用下會使程序出現(xiàn)不同的響應,這些可以接收或者產(chǎn)生事件的程序?qū)嶓w就叫做控件12、類信息表:MFC程序在不同的場合下還經(jīng)常用到類的其他信息,于是MFC就把這些信息統(tǒng)統(tǒng)都放在映射表項中,并把它叫做類消息表13、消息循環(huán):while(GetMessage(&msg,NULL,NULL,NULL)){TranslateMessage(&msg);DispatchMessage(&msg);}四.填空題在MFC中,用戶可以通過項目工作區(qū)窗口的ResourceView視圖來查看資源。一個單文檔的MFC應用程序框架一般包括5個類:應用程序類、框架窗口類、視圖類、文檔類和文檔模板類。Windows是一個基于消息的消息驅(qū)動系統(tǒng)。項目工作區(qū)文件的擴展名是dsw。MessageBox函數(shù)彈出一個小的對話框向用戶顯示短信息,并將用戶最終的選擇返回給調(diào)用者。在通常情況下,視圖派生類的成員函數(shù)中通過調(diào)用GetDocument函數(shù)得到當前文檔對象的指針。Windows程序中的消息有窗口消息、命令消息和控件通知消息三種類型。MFC中的集合類包括數(shù)組、列表(鏈表)、映射(順序可變)。在進行繪圖時,畫刷用于指定圖形的填充樣式,畫筆用于指定圖形的邊框樣式。用戶按下鍵盤按鍵并放開的過程中,將產(chǎn)生至少三條消息:WM_KEYDOWN,WM_CHAR,WM_KEYUP。11、WindowsAPI中API的中文譯文是應用程序接口。12、MFC的中文譯文是微軟基礎類庫。13、GDI的中文譯文是圖形設備接口。14、全局函數(shù)AfxGetApp()可以得到CWinApp應用類指針。15、MFC中可自動重繪的繪圖代碼一般位于項目的視圖類的OnDraw()函數(shù)中。16、在視圖中,GetDocument()函數(shù)可得到對應的文檔對象指針。17、在文檔中,GetFirstviewPosition()和GetNextview()配合可用來遍歷所有和文檔關聯(lián)的視圖。18、在MFC中,用CRect類來描述一個矩形區(qū)域的大小。19、在任何時刻設備環(huán)境中必須有一支畫筆,并且只能有一支。因此在使用自己定義的畫筆時,要使用CDC的函數(shù)把默認畫筆替換為自己定義的畫筆,這個函數(shù)是SelectObject()。20、MFC的缺省的映射模式是MM_TEXT,對應的單位為像素。21、在視圖類中為了訪問與視圖關聯(lián)的文檔對象中數(shù)據(jù),應該先調(diào)用GetDocument()函數(shù)得到相關聯(lián)文檔對象指針。22、利用MFCAppWizard可以生成SDI界面、MDI界面和基于對話框界面的程序。23、在框架窗口中,GetActiveDocument()函數(shù)可得到當前活動文檔指針,GetActiveView()函數(shù)可得到當前活動視指針。24.MFC對話框類的基類是CDialog,用戶自定義對話框類都是從它派生而來。25.Windows系統(tǒng)是一個消息響應事件驅(qū)動的操作系統(tǒng),消息是應用程序與操作系統(tǒng)交互的手段。()被用來從消息隊列獲取消息,27.函數(shù)TranslateMessage()用來把鍵盤消息轉(zhuǎn)換為字符消息,函數(shù)DispatchMessage()用來向系統(tǒng)派送消息。五、選擇填空題(每空1分,共15分)1、B代表窗口客戶區(qū)的顯示設備上下文,C代表整個窗口的顯示設備上下文。A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC2、消息循環(huán)的處理過程如下:A函數(shù)不斷偵察應用程序的消息隊列,若隊列為空,該函數(shù)一直運行,不返回;一旦發(fā)現(xiàn)隊列不為空,便取出一條消息,把它拷貝到msg結構變量中,同時該函數(shù)返回TRUE;得到消息msg后,B把來自鍵盤的命令翻譯成WM_XXX消息命令形式。E函數(shù)通知Windows把每個消息分發(fā)給相應的窗口函數(shù)。應用程序并不直接調(diào)用窗口函數(shù),而由Windows根據(jù)消息去調(diào)用窗口函數(shù),因此,窗口函數(shù)經(jīng)常被稱為回調(diào)函數(shù)。A、GetMessage()B、translateMessage()C、PostMessage()D、SendMessage()E、DispatchMessage()3、滾動條類CScrollBar的成員函數(shù)規(guī)定了滾動條的操作。設置滾動條的范圍使用C函數(shù),設置滾動塊的位置使用E函數(shù),獲取滾動塊的當前位置使用F函數(shù)。A、SetPosB、SetRangeC、SetScrollRangeD、GetPosE、SetScrollPosF、GetScrollPosG、GetScrollRange4、所有的文檔類都派生于C,所有的視圖類都派生于A。A、CViewB、CWindowC、CDocumentD、CFormView5、C包括鍵盤和鼠標的輸入。這一類消息首先放在系統(tǒng)消息隊列中,然后由Windows將它們送入應用程序消息隊列中,由程序來處理消息;D用來與Windows的控制對象,如列表框、按鈕、復選框等進行雙向通信。當用戶在列表框中改動當前選擇或改變了復選框的狀態(tài)時發(fā)出此類消息。A、系統(tǒng)消息B、用戶消息C、輸入消息D、控制消息6、使用B獲取的設備上下文在退出時,必須調(diào)用ReleaseDC()釋放設備上下文。A、GetWindowRect()B、GetDC()C、BeginPaint()D、GetClientRect()六.判斷題1. 所謂的WindowsAPI就是獨立于C語言的一套全新的程序設計語言。(×)2. 在Windows編程約定中,CHAR數(shù)據(jù)類型和TCHAR數(shù)據(jù)類型是相同的。(×)3. 匈牙利命名法是所有程序都必須遵循的一個規(guī)則,變量的命名必須按照規(guī)則進行。(×)4. 在Windows編程約定中,代表窗口句柄的數(shù)據(jù)類型是HWND。(√)5. 在Windows編程中,使用窗口句柄來操作具體的窗口。(√)6. 在Windows的消息結構中,鍵盤的按鍵字符信息被保存在lParam中。(×)7. 在Windows消息機制中,WM_TIMER消息表示創(chuàng)建了1個定時器。(×)8. 所有的Windows程序,其入口函數(shù)必須名為WinMain。(×)9. PostMessage和SendMessage的區(qū)別在于前者投遞消息到隊列,而后者直接調(diào)用消息響應函數(shù)。(√)10. 在Windows編程中,AppendMenu可以在菜單的任意位置插入新的菜單項。(×)11. 在Windows編程中,菜單可以在資源視圖中設計,一旦載入程序,就不能再被更改。(×)12. 在Windows編程中,鍵盤按鍵彈起時,會返回消息WM_KEYDOWN。(×)13. 在Windows編程中,鼠標消息中不包含任何鍵盤信息。(×)14. 在Windows編程中,1個程序中只允許設置一個定時器。(×)15. 畫筆顏色構成是0x00BBGGRR,其中B、G、R分別代表1位16進制數(shù)表示藍、綠和紅色分量的大小。(√)16. 對于GDI點陣字體和GDI筆劃字體,Windows都可以合成粗體、斜體、加底線和加刪除線,而不需要為每種屬性另外儲存字體。(√)17. FillRect中指定的畫刷是用于畫矩形本身和邊框,F(xiàn)rameRect中指定的畫刷是用于畫矩形的邊框。(×)18. Win32API可以直接讀取所有的圖像格式。(×)打開一個項目,只需打開對應的項目工作區(qū)文件。 (√)基于對話框的應用程序,也有文檔類和視圖類。 (×)所有的Windows應用程序都是消息驅(qū)動的。 (√)COMMAND(菜單消息類型)是更新命令用戶接口消息。 (×)刪除CPen對象可調(diào)用CPen對象的DeleteObject函數(shù)。 (×)CBrush是GDI對象。 (√)Windows應用程序的入口也是main函數(shù)。 (×)七.簡答題1.Windows應用程序的主函數(shù)有哪三個主要任務答注冊窗口類、創(chuàng)建應用程序的窗口和建立消息循環(huán)。2.運行程序后單擊鼠標右鍵彈出對話框提示“您按下了鼠標右鍵”對話框。簡要說明設計步驟。參考答案:(1)新建基于單文檔的應用程序;(2)用類向?qū)в成涫髽擞益I消息;(3)在消息函數(shù)中添加代碼:MessageBox(“您按下了鼠標右鍵”);3、.利用AppWizard生成默認的SDI應用程序My時,向?qū)ё詣由傻哪乃膫€類及其相應的功能。參考答案:CMainFrame(構建應用程序,顯示窗架)CMyApp(整個應用程序)CMyDoc(管理數(shù)據(jù))CMyView(顯示數(shù)據(jù))4.創(chuàng)建窗口的五個步驟:參考答案:1)定義窗口2)注冊窗口3)創(chuàng)建窗口4)顯示窗口5)消息循環(huán)5.如何顯示和更新窗口答:調(diào)用函數(shù)ShowWindow顯示窗口,調(diào)用函數(shù)UpdateWindows更新窗口。6.什么是消息循環(huán)答:在創(chuàng)建了窗口的應用程序中,應用程序?qū)⒉粩嗟貜南㈥犃兄蝎@取消息,并將消息指派給指定的窗口處理函數(shù)來處理,然后再回來從消息隊列獲取消息,這個不斷重復的工作過程叫做消息循環(huán)。7.說明Windows應用程序的主函數(shù)、窗口函數(shù)與Windows系統(tǒng)之間的關系。答:Windows應用程序的主函數(shù)和窗口函數(shù)都是系統(tǒng)調(diào)用的函數(shù),主函數(shù)是在應用程序啟動時由系統(tǒng)首先調(diào)用的函數(shù),而窗口函數(shù)是主函數(shù)在消息循環(huán)中獲得消息并把消息派送給系統(tǒng)之后,由系統(tǒng)調(diào)用的用來處理消息的函數(shù)。8.文檔類的成員函數(shù)UpdateAllViews的作用是什么答:通知文檔所對應的所有窗口同時進行重繪。9.MFC應用程序的界面有哪三種方式答:(1)單文檔界面;(2)多文檔界面;(3)基于對話框界面。10.WinMain()函數(shù)的工作。WinMain()函數(shù)是Windows程序的入口點在WinMain中進行注冊窗體類、建立窗體、顯示窗體、更新窗體、建立消息循環(huán)11.非MFC的Windows程序中,在WM_PAINT消息中怎樣獲得客戶區(qū)的設備環(huán)境句柄。和不是WM_PAINT消息中怎樣獲得客戶區(qū)的設備環(huán)境句柄。BeginPaint----------EndPaintGetDC---------------ReleaseDC(成對出現(xiàn))利用GetDC函數(shù)獲取設備環(huán)境句柄12.句柄的含義。句柄是一個通常為32位的無符號整數(shù)(unsignedint),它代表一個內(nèi)核對象,是內(nèi)核對象在應用層的表示。13.在MM_TEXT映射模式下,什么情況下客戶坐標和邏輯坐標可能不同。當窗口客戶區(qū)有滾動條時客戶坐標和邏輯坐標可能不同14.GetMessage()函數(shù)在什么情況下返回0從而導致消息循環(huán)終止程序結束。在接收到WM_QUIT消息時返回015.Windows中應用程序的輸出是怎樣進行的。通過設備描述表DC(DeviceContext)來進行應用程序與物理設備之間的交互16.當程序中某個函數(shù)改變了數(shù)據(jù)而需要重新繪制客戶區(qū)時WM_PAINT不會被自動調(diào)用,這時需要怎樣間接調(diào)用它。使用InvalidateRect()調(diào)用17.鍵盤消息處理函數(shù)OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags)中的主要參數(shù)。參數(shù)UINTnChar指按下按鍵的虛擬鍵碼;nRepCnt按鍵按下的次數(shù);nFlags有沒有其他鍵同時被按下;如shift、ctrl、Alt18.DC中的SetROP2()的作用。設定繪圖模式19.擴展名為.rc的文件是什么。資源文件20.GDI繪圖函數(shù)所使用的參數(shù)。GDI繪圖函數(shù)使用的邏輯坐標21.當用戶按下某個字母鍵時消息發(fā)生的順序。WM_KEYDOWN->TranslateMessage()->WM_CHAR22.常用的客戶區(qū)鼠標消息有哪些答WM_LBUTTONDBCLK雙擊鼠標左鍵WM_LBUTTONDOWN按下鼠標左鍵WM_LBUTTONUP釋放鼠標左鍵WM_MOUSEMOVE移動鼠標WM_RBUTTONDBCLK雙擊鼠標右鍵WM_RBUTTONDOWN按下鼠標右鍵WM_RBUTTONUP釋放鼠標右鍵23.什么樣的窗口才能接收鍵盤消息答在Windows中有時會同時打開多個窗口。在這些窗口中只有一個是活動窗口這個窗口一般是屏幕上位置最靠前的窗口它的特征是其標題欄被點亮的而不是灰色的。只有活動窗口才具有輸入焦點而Windows中規(guī)定只有具有輸入焦點的窗口才能接收鍵盤消息也就是說只有活動窗口才能接收鍵盤消息。24.鍵盤消息分為哪幾類哪些鍵只產(chǎn)生按鍵消息不產(chǎn)生字符消息答鍵盤消息可以分成按鍵消息和字符消息兩類。按鍵消息分為系統(tǒng)按鍵消息(WM_KEYDOWN,WM_KEYUP)和非系統(tǒng)按鍵消息WM_SYSKEYDOWN,WM_SYSKEYUP。字符消息也同樣分為系統(tǒng)字符消息WM_CHAR,WM_DEADCHAR和非系統(tǒng)字符消息WM_SYSCHAR,WM_SYSDEADCHAR。值得注意的是系統(tǒng)按鍵消息只能產(chǎn)生系統(tǒng)字符消息非系統(tǒng)按鍵消息只能產(chǎn)生非系統(tǒng)的字符消息。在Windows中一些鍵是只產(chǎn)生按鍵消息而不產(chǎn)生字符消息的這些鍵包括Shift鍵、Ctrl鍵、功能鍵、光標移動鍵、特殊字符鍵。25.在程序中如何確定窗口何時具有輸入焦點何時失去輸入焦點。答當應用程序的窗口獲得輸入焦點時會發(fā)出WM_SETFOCUS消息而當窗口失去輸入焦點時會發(fā)出WM_KILLFOCUS消息。如果一個窗口獲得了輸入焦點便可以用鍵盤對這個窗口進行操作。26.在WNDCLASSEX結構類型中,各個成員所代表的含義是什么WNDCLASSEX結構類型定義如下:typedefstruct_WNDCLASSEX{UINTcbSize;UINTstyle;WNDPROClpfnWndProc;intcbClsExtra;intcbWndExtra;HINSTANCEhInstance;HICONhIcon;HCURSORhCursor;HBRUSHhbrBackground;LPCTSTRlpszMenuName;LPCTSTRlpszClassName;HICONhIconSm;}WNDCLASSEX27.在CreateWindowEx()函數(shù)中,各成員所代表的含義是什么CreateWindowEx()函數(shù)定義如下:HWNDCreateWindowEx(DWORDdwExStyle,LPCTSTRlpClassName,LPCTSTRlpWindowName,DWORDdwStyle,intx,inty,intnWidth,intnHeight,HWNDhWndParent,HMENUhMenu,HINSTANCEhInstance,LPVOIDlpParam);()函數(shù)的功能什么UpdateWindow()函數(shù)定義如下:BOOLUpdateWindow(HWNDhWnd);答:更新窗口客戶區(qū)29.在MSG結構類型中,各個成員所代表的含義是什么MSG結構類型定義如下:typedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}MSG,*PMSG;()函數(shù)的功能什么DefWindowProc()函數(shù)定義如下:LRESULTDefWindowProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);答:函數(shù)功能:該函數(shù)調(diào)用缺省的窗口過程來為應用程序沒有處理的任何窗口消息提供缺省的處理。該函數(shù)確保每一個消息得到處理。講匈牙利命名慣例的約定,還要記住那些習慣用法匈牙利命名慣例的約定有兩條:

1.標識符以一個或者幾個小寫字母開始,這些小寫字母表示標識符的數(shù)據(jù)型;

2.大小寫混雜寫,使得標識符具有一定的含義,便于理解,增強可讀性。習慣用法:在命名結構變量時,可以用結構名的小寫字符序列作為變量名的字首,或者用整個結構名用作結構變量名。32消息循環(huán)從應用程序消息隊列取得窗口消息是怎樣送給窗口消息處理程序答:通過Dispatch(&msg)將消息發(fā)給指定的窗口;主程序WinMain和WndProc是如何聯(lián)系的答:WinProc窗口處理函數(shù)是一個回調(diào)函數(shù),它是用來處理消息的,是由Windows調(diào)用的。在注冊窗口類的時候指定了窗口處理函數(shù)的入口地址,應用程序獲得的消息都交給此入口地址對應的窗口處理函數(shù)來處理。34.解釋下面函數(shù)申明中的每一個單詞intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd);答:HINSTANCE是數(shù)據(jù)類型,hInstance稱為執(zhí)行實例代號。hPrevInstance是一個識別字,通過檢查hPrevInstance就能夠確定此應用程序是否已有過其他實例。lpCmdLine是指向命令序列的指針。nShowCmd指出應用程序的窗口的最初顯示方式。窗口類結構中常用的有那幾個載入函數(shù)它們的用法如何答:LoadIcon函數(shù)HICONWINAPILoadIcon(//返回的指向圖標的指針,如果失敗,返回NULL

HINSTANCEhInstance,//用戶定義圖標在哪個實例中,NULL為系統(tǒng)圖標

LPCSTRlpIconName//圖標名,也稱圖標上的標簽

);LoadCursor()函數(shù)HCURSORWINAPILoadCursor(//返回新載入的光標的句柄

HINSTANCEhInstance,//載入的光標

LPCTSTRlpCursorName)//預定義的光標資源名GetStockObject(WHITE_BRUSH);//窗口背景色有哪兩種方法獲得屏幕的hDC答:利用GetDC()取得窗口hDC;在處理WM_PAINT消息期間使用BeginPaint()獲得hDC;BeginPaint和EndPaint在什么情況下使用,為什么要成對出現(xiàn)答:在處理WM_PAINT消息期間使用。InvalidateRect所決定的重繪區(qū)和BeginPaint所決定的重繪區(qū)有什么區(qū)別InvalidateRect最后一個參數(shù)的作用是什么答:程序調(diào)用BeginPaint時,在大多數(shù)情況下,fErase被標志為FALSE(0),這意味著Windows已經(jīng)擦除了無效矩形的背景。在調(diào)用BeginPaint后PAINTSTRUCT結構的fErase條款將成為TRUE(非零)。而程序通過調(diào)用InvalidateRect函數(shù)使客戶區(qū)中的矩形失效,則該函數(shù)的最后一個參數(shù)會指示是否擦除背景。如果這個參數(shù)為FALSE,則執(zhí)行InvalidateRect時Windows將不擦除背景,反之,則會擦除背景。39、GetSystemMetrics函數(shù)的用處是什么GetTextMetrics函數(shù)的用處是什么為了存儲它們所獲得的信息,預先定義一個結構是什么40、什么情況下產(chǎn)生WM_CREATE窗口消息什么情況下產(chǎn)生WM_PAINT窗口消息答:產(chǎn)生WM_CREATE窗口消息:執(zhí)行CreateWindow函數(shù)時產(chǎn)生WM_PAINT窗口消息:執(zhí)行UpdateWindow函數(shù)時在使用者移動窗口或顯示窗口時,窗口中先前被隱藏的區(qū)域重新可見。使用者改變窗口的大?。ㄈ绻翱陬悇e樣式有著CS_HREDRAW和CS_VREDRAW位旗標的設定)。程序使用ScrollWindow或ScrollDC函數(shù)滾動顯示區(qū)域的一部分。程序使用InvalidateRect或InvalidateRgn函數(shù)刻意產(chǎn)生WM_PAINT消息。Windows擦除覆蓋了部分窗口的對話框或消息框。(可能)菜單下拉出來,然后被釋放。(可能)顯示工具提示消息。為什么WM_SIZE窗口消息后必然跟著一個WM_PAINT窗口消息答:為我們定義窗口類的時候制定了類風格CS_HREDRAW|CS_VREDRAW如果用戶希望立即更新無效區(qū)域,可以在調(diào)用InvalidateRect之后調(diào)用什么函數(shù)答:UpdateWindow按照產(chǎn)生的按鍵消息分,按鍵分成那兩類答:系統(tǒng)按鍵和非系統(tǒng)按鍵按鍵消息有哪四種形式系統(tǒng)按鍵消息有什么特點它在哪里處理那些不是系統(tǒng)按鍵消息答:四種形式:WM_KEYDOWNWM_SYSKEYDOWNWM_KEYUPWM_SYSKEYUP特點:系統(tǒng)按鍵可能是一個按鍵也可能是幾個按鍵的組合鍵,系統(tǒng)按鍵對Windows系統(tǒng)起作用。由默認分支DefWindowProc處理系統(tǒng)鍵盤消息。WM_KEYDOWNWM_KEYUP數(shù)字和字母的虛擬鍵碼是怎樣定義的答:數(shù)字、字母的虛擬鍵碼是用ASCII碼定義的。窗口函數(shù)中WM_KEYDOWN消息處理分支中的wParam和SendMessage函數(shù)第三個參數(shù)wParam有什么不同答:消息處理分支中的wParam它是判斷虛擬鍵盤的。而SendMessage中的wParam它是存放鼠標通知碼。47、窗口函數(shù)中WM_KEYDOWN消息處理分支中的wParam和SendMessage函數(shù)第三個參數(shù)wParam有什么不同48、鼠標是一種“必須要的選擇設備”,如何應用GetSystemMetrics函數(shù)確認鼠標是否存在寫出程序代碼。答:fMouse=GetSystemMetrics(SM_MOUSEPRESENT);八、程序設計題已經(jīng)在視圖類中映射了單擊鼠標右鍵的消息,在該函數(shù)中完成繪圖,要求以鼠標點擊位置為圓心、半徑為100的綠色藍邊的圓。CEx4_2View::OnRButtonDown(UINTnFlags,CPointpoint){ //TODO:Addyourmessagehandlercodehereand/orcalldefault CView::OnRB

溫馨提示

  • 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

提交評論