freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第12章:基于文檔/視圖結(jié)構的程序-資料下載頁

2025-08-01 15:23本頁面
  

【正文】 ? short CCarManageDoc::GetCarCount() ? { return ()。 ? //取對象數(shù)組的大小 , 對象數(shù)組是動態(tài)調(diào)整的 , 其數(shù)組的大小就是當前元素的個數(shù) ? } Visual C++ 數(shù)據(jù)存盤 —— 文檔數(shù)據(jù)序列化 ? 1. 序列化的實現(xiàn) ? MFC的應用程序架構提供了數(shù)據(jù)序列化的方式來處理磁盤的存盤與打開 , 序列化的大部分工作靠應用程序框架來完成 , 我們所要做的就是重載文檔類的序列化函數(shù)Serialize()。 ? 由于文檔類 CCarManageDoc的祖先類也是 CObject, 因此要想使文檔中的數(shù)據(jù) ( 對象數(shù)組 m_oaCars) 要想實現(xiàn)持久化 , 也是通過類的序列化函數(shù) Serialize()來實現(xiàn)的 ,下面是該函數(shù)的實現(xiàn) 。 void CCarManageDoc::Serialize(CArchiveamp。 ar) {(ar)。 /*調(diào)用對象數(shù)組 CObArray的序列化函數(shù)來完成,對象數(shù)組又調(diào)用該數(shù)組中的元素CCar對象的序列化函數(shù)來完成,而 CCAr的序列化函數(shù)在前面已經(jīng)講了 */ if (()) {// 普通成員變量的存盤,因為該文檔沒有普通成員變量,所以它不起作用 } else { // 普通成員變量的讀取 } } Visual C++ —— 文檔數(shù)據(jù)序列化(續(xù)) ? 2. 文檔類序列化的局限 ? 序列化機制這種保存數(shù)據(jù)的方法適合大多數(shù)的情況 , 特被是那些數(shù)據(jù)量不是特別大 , 而且需要一次性全部讀入或?qū)懗龅那闆r 。 ? 另外 序列化只能順序讀寫文件 , 不能進行隨機操作 , 只能操作二進制文件 , 不能處理文本文件 , 不能操作數(shù)據(jù)庫文件 , 不能共享式操作文件等 。 出現(xiàn)上述情況時 , 文檔類的超載函數(shù)必須加以改變 , 需要通過 CFile而不是 CArchive來存取文件 。 CFile提供了文件打開 、 讀 、 寫 、 關閉和移動文件指針的函數(shù) 。 在文檔類的 Serializa()函數(shù)中 , 應用程序框架已經(jīng)打開了文件 , 可以使用 CArchive的成員函數(shù) GetFile()獲取指向 CFile對象的指針 。 另外 , 還有一個復雜但靈活的方法是超載應用程序類 CWinApp的函數(shù) 。 Visual C++ 視圖及其派生類 在視圖中繪圖 用戶與視圖進行交互 視圖 —— 顯示文檔數(shù)據(jù),提供用戶接口 Visual C++ 視圖及其派生類 ? 1. 視圖定義 ? 視圖是數(shù)據(jù)的用戶窗口 , 為用戶提供了文檔可視的數(shù)據(jù)顯示 , 它把文檔的部分或全部內(nèi)容在窗口中顯示出來 。 視圖還給用戶提供了一個與文檔中的數(shù)據(jù)交互界面 , 它把用戶的輸入轉(zhuǎn)化為對文檔中數(shù)據(jù)的操作 。 ? 2. 視圖類 CView ? 視圖類 CView為用戶定義的視圖類提供了基本的功能 , 它被連接到文檔上 , 用作文檔和用戶之間的媒介 。 視圖是框架窗口的子窗口 。 ? 視圖類 CView是 MFC中負責管理視圖窗口的基類 , 其它視圖類都由此派生 。CView的主要功能是顯示和修改文檔的數(shù)據(jù) , 它對文檔數(shù)據(jù)的存儲沒有支持 ? 從基類 CView派生了如下常用的視圖類: ( 1) CScrollView。 滾動視類;( 2) CEditView。 編輯視圖類;( 3)CFormView。 一種可以滾動的視圖,其中包括了對話框控件;( 4)CHtmlView。 該類提供了 Web瀏覽器的功能。 視圖類 CView的主要操作由 表 。 Visual C++ 表 CView類的主要成員函數(shù) 成員函數(shù) 功能說明 GetDocument 返回與視圖相連接的文檔 OnlnitialUpdate 在一個視圖第一次與文檔連接的時候調(diào)用 OnActivateView 當一個視圖被激活時調(diào)用 OnDraw 調(diào)用它畫出文檔的圖象 , 用于屏幕顯示 , 打印或打印預覽 。 該函數(shù)一般需要程序員提供其實現(xiàn) OnPrint 打印或預覽文檔的一頁 OnUpdate 調(diào)用這個函數(shù)以通知一個視圖 , 文檔已經(jīng)被修改 Visual C++ 在視圖中繪圖 ? 在基于文檔 /視圖結(jié)構的應用程序中 , 屏幕上所有的顯示都是 “ 畫 ” 出來的 , 而幾乎所有的 “ 畫 ” 動作都是靠視圖類的 OnDraw()函數(shù)來實現(xiàn) , 該函數(shù)主要完成 兩個功能 : 1.調(diào)用文檔對象的成員函數(shù) GetDocument()獲取與該視圖所關聯(lián)的文檔的指針。 2.調(diào)用 CDC的成員函數(shù)進行繪圖操作,以 “ 畫 ”出文檔數(shù)據(jù)。 Visual C++ 用戶與視圖進行交互 ? 視圖提供了用戶與文檔中的數(shù)據(jù)交互的手段和工具。 用戶通過擊鍵、菜單選擇、工具欄按鈕選取、鼠標的按下、松開、移動等輸入操作,經(jīng)過 Windows系統(tǒng)轉(zhuǎn)化為一般的窗口消息(來自鼠標和鍵盤消息)和命令消息(來自菜單、工具欄和加速鍵),視圖通過處理這些消息,來獲取用戶的操作信息,解釋用戶操作的意義,實現(xiàn)用戶的意圖。 ? 由于汽車管理程序要通過錄入界面得到每一輛車的信息 , 因而要設計一個對話框?qū)崿F(xiàn)輸入的界面 。 ? 在對話框資源中增加一個 ID號為 IDD_DIALOG_CAR對話框資源模板 , 如 圖 。 該界面中的控件的屬性如 表 。 Visual C++ 圖 Visual C++ 表 控件類型 屬性 值 對應成員變量 靜態(tài)文本控件 ID IDC_STATIC Caption 車牌號 成組框 ID IDC_STATIC Caption 車基本信息 編輯框控件 ID IDC_EDIT_CARNUMBER CString m_CarNumber ID IDC_EDIT_CARTYPE CString m_CarType ID IDC_EDIT_COLOR CString m_Color ID IDC_EDIT_MAXSPEED Short m_MaxSpeed 按鈕控件 ID IDOK Caption 確定 ID IDCANCEL Caption 取消 Visual C++ 用戶與視圖進行交互 (續(xù)) ? 對話框建立好后 , 通過類向?qū)г俳⒁粋€與該對話框資源 IDD_DIALOG_CAR所關聯(lián)的對話框類 CCarDlg。 ? 2. 輸入對話框的調(diào)用 ? 在工具欄資源 IDR_MAINFRAME中增加一個 ID號為ID_BUTTON_CAR的按鈕,如 圖 。再利用CalssWizard在視圖類 CCarManageView中增加它對COMMAND消息的響應函數(shù) OnButtonCar() 。 Visual C++ 圖 在工具欄資源 IDR_MAINFRAME增加按鈕 Visual C++ OnButtonCar()函數(shù) ? void CCarManageView::OnButtonCar() ? //對工具欄中的按鈕 ID_BUTTON_CAR的消息響應函數(shù) ? { // TODO: Add your mand handler code here ? CCarManageDoc* pDoc = GetDocument()。 //取與視圖所關聯(lián)的文檔 ? ASSERT_VALID(pDoc)。 ? CCarDlg MyCarDlg。 //聲明輸入汽車信息對話框變量 MyCarDlg ? if(()==IDOK) //如果點擊確定的化 ? { (,olor, )。 /*將話框中所輸入的汽車信息保存到視圖類的成員變量 m_Car中 , SetCarValues為 CCar的成員函數(shù) */ ? pDocAddCar(m_Car)。 ? //將新增的汽車 m_Car通過調(diào)用文檔類的成員函數(shù) AddCar增加到文檔類的對象數(shù)組m_oaCars中 ? Invalidate()。//屏幕刷新,發(fā)送 WM_PAINT消息,引發(fā) OnDraw的執(zhí)行 } ? } Visual C++ 習 題 一 、 名詞解釋 1. 文檔模板 2. 視圖 3. 框架 4. 持久化 5. 序列化 二 、 簡單題 1. MFC中都有哪些從 CView派生出來的視圖類 ? 他們都用在什么地方 。 2. 拿 Word字處理程序的運行界面來說 , 它是一個典型的多文檔模板 、一個模板多個文檔 、 一個文檔多個視圖的應用程序 。 請寫出其界面中所對應的是 MFC中的哪些類 ? 3. 從 CObject派生的類可以實現(xiàn)序列化 , 一個類要實現(xiàn)序列化都有哪些操作步驟 ? 每一步的含義是什么 ? 三 、 實驗題 1. 模仿本章實例 , 建立一個基于文檔 /視圖結(jié)構的應用程序 , 它能實現(xiàn)簡單的學生成績管理 。 它有三個對話框 , 分別實現(xiàn)學生信息錄入 、課程信息錄入和學生考試信息錄入 。 2. 在上述程序基礎上,實現(xiàn)輸入數(shù)據(jù)的持久化處理。完后上機調(diào)試。
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1