基本信息
文件名称:对话框及常用控件课件.ppt
文件大小:345.5 KB
总页数:52 页
更新时间:2025-02-22
总字数:约1.19万字
文档摘要

*5.2創建模式對話框 case1:msg+=女; break; } msg+=\r\n; msg+=“最高學歷:”; //選擇最高學歷 msg+=dlg.m_combo_school; msg+=\r\n; msg+=“愛好:”; //選擇愛好if(dlg.m_check_art==TRUE) msg+=藝術; if(dlg.m_check_music==TRUE) msg+=音樂;*5.2創建模式對話框 if(dlg.m_check_sport==TRUE) msg+=體育; AfxMessageBox(msg); //最後調用MFC類庫//中的全局函數AfxMessageBox()生成一個消息對話框,//顯示用戶在對話框中的設置 CView::OnLButtonDblClk(nFlags,point);}步驟三:在類CdialogView的實現檔CdialogView.cpp中加入對話框的頭檔,其中粗體部分為新輸入的程式代碼。//DialogView.cpp:implementationoftheCDialogViewclass#includestdafx.h#includeDialog.h*5.2創建模式對話框#includeDialogDoc.h#includeDialogView.h#includeMydataDialog.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif步驟四:選擇【Build】菜單中的【Build】菜單項,或者直接單擊【Build】工具欄中的【RebuildAll】按鈕進行編譯。*5.2創建模式對話框步驟五:選擇【Build】菜單中【Execute】菜單項,或者單擊【Build】工具欄中的【ExecuteProgram】運行程式。步驟六:在窗口中雙擊滑鼠左鍵,彈出剛剛設計的“個人資料”對話框。可以在編輯框中輸入姓名為“王春玲”,選擇性別為“女”、最高學歷為“碩士”、愛好為“體育”和“音樂”,單擊“確定”按鈕退出時,將顯示消息框如圖所示。*5.3非模式對話框的實現非模式對話框的創建步驟基本上同模式對話框的創建一致,只是實現的原理不一樣,在這裏只介紹其獨特的地方,其他共同部分可參照上一節中所介紹的步驟。模式和非模式對話框共用相同的基類CDialog,並且它們都可以使用對話框編輯器來創建對話框資源。我們可以通過調用成員函數DoModal()來顯示一個有模式的對話框,當函數返回時,對話框將不再存在。而無模式對話框在它本身處於啟動狀態時,還允許用戶使用其他的應用程式。創建無模式對話框要比創建模式對話框複雜一些:首先要調用的默認構造函數構造一個對話框窗口對象;然後通過調用CDialog的成員函數Create來創建對話框窗口,而不是調用成員函數DoModal。並且當對話框仍然留在螢幕上時,控制已經立刻返回了。*5.3非模式對話框的實現下麵,我們就來創建一個簡單的非模式對話框,具體步驟如下:步驟一:創建應用程式框架。利用AppWizard在“E:\C++\Example\”創建一個應用程式框架“Ndialog”。除了以下兩個選項外,其他均使用默認值:選定SingleDocument,並撤銷PrintingAndPrintPreview的選定。步驟二:創建對話框資源。1.選擇【Insert】菜單中的【Resource】菜單項,然後選定【Dialog】。2.設置對話框的標題為“非模式對話框”,ID值使用缺省值“IDD_DIALOG1”。3.添加兩個控件:一個靜態文本控件,標題為“輸入資訊”;一個編輯框控件。二者均使用默認ID值。*5.3非模式對話框的實現4.在對話框屬性的【MoreStyles】中,選定【Visible】屬性。步驟三:創建對話框類CNDialog。1.利用ClassWizard創建對話框類CNDialog。2.為對象IDOK和IDCANCEL添加消息處理函數。(1)在【ControlIDs】列表框中選擇IDOK,在【Messages】列表框中選擇BN_CLICKED,單擊【AddFunction】按鈕,出現【AddMemberFunction】對話框,添加成員函數名為OnOk;(2)在【Cont