1. 程式人生 > >文件新建、開啟及關閉的過程

文件新建、開啟及關閉的過程

應用程式類的InitInstance()函式在呼叫了AddDocTemplate()函式之後,會通過CWinApp::ProcessShellCommand間接呼叫
CWinApp的OnFileNew,並依次完成下列工作:
(1)構造文件物件,從磁碟中讀取資料。
(2)構造主框架類CMainFrame類的物件,並建立該主框架視窗,但不顯示。
(3)構造檢視物件,並建立檢視視窗,同樣也不顯示。
(4)通過MFC內部機制,建立主框架視窗、文件和檢視物件之間的聯絡。
(5)呼叫CDocument::OnNewDocument()虛擬函式,並呼叫CDocument::DeleteContents()虛擬函式來清除文件物件的內容。
(6)呼叫CView::OnInitialUpdate()虛擬函式初始化檢視類的資料成員。
(7)呼叫CFrameWnd::ActiveFrame()虛擬函式,顯示帶有選單、工具欄、狀態列以及檢視視窗的主框架視窗。

開啟文件
在利用MFC應用程式嚮導建立應用程式時,MFC會自動將“檔案”選單中的“開啟”命令對映到CWinApp類的OnFileOpen()成員函式。OnFileOpen()函式會完成下列操作:
(1)彈出通用檔案“開啟”對話方塊,供使用者選擇一個文件。
(2)文件指定後,呼叫文件物件的CDoucment::OnOpenDocument()虛擬函式。這個函式將開啟文件,並呼叫DeleteContents()函式清除文件物件的內容,然後建立一個CArchive物件用於資料的讀取,接著又自動呼叫Serialize()函式。
(3)呼叫檢視物件的CView::OnInitialUpdate()虛擬函式初始化檢視類的資料成員。

儲存文件
在利用MFC應用程式嚮導建立應用程式時,它會自動將“檔案”選單中的“儲存”命令與文件類的OnFileSave成員函式在內部關聯。OnFileSave()函式會完成下列操作:
(1)彈出通用檔案“儲存”對話方塊,讓使用者輸入一個檔名。
(2)呼叫文件類物件的CDocument::OnSaveDocument()虛擬函式,接著又自動呼叫Serialize()函式,將CArchive物件的內容儲存在文件中。

關閉文件
當用戶試圖關閉文件(或退出應用程式)時,應用程式會根據使用者對文件的修改與否來進一步完成下列任務。
(1)若文件內容已修改,則彈出一個“訊息”對話方塊,詢問使用者是否儲存修改後的文件。當用戶選擇“是”,則應用程式執行OnFileSave過程。
(2)呼叫CDocument::OnCloseDocument()虛擬函式,關閉所有與該文件相關聯的文件視窗及相應的檢視,呼叫文件類的DeleteContents清除文件資料。

相關推薦

新建開啟關閉過程

應用程式類的InitInstance()函式在呼叫了AddDocTemplate()函式之後,會通過CWinApp::ProcessShellCommand間接呼叫 CWinApp的OnFileNew

歸檔壓縮傳輸

文件歸檔、壓縮及傳輸1.文件歸檔文件歸檔,就是把多個文件變成一個歸檔文件tar c 創建 f 指定歸檔文件名稱 t 顯示歸檔文件中的內容 r

Python管理亂碼對passwd排序

() oss ora nco ges pool doc post game 1.讀寫文件讀文件: f = open("1.txt") text = f.readlines() print(text)寫文件: f = open(

淺談三大——需求概要詳細

        當今,電腦已經走進了千家萬戶。而用360清理電腦,好像已經是每家每戶經常乾的事情。而我的一個遠親更為誇張,家裡電腦上裝滿了360的套裝。從瀏覽器到安全衛士再到防毒軟體。清理電腦清理的頻

C#中操作Word(2)—— 新建開啟儲存和關閉

       本文中主要介紹C#中對word文件進行新建、開啟、儲存、關閉的方法。在本次試驗之前,先佈置試驗環境。首先,先新建一個winform的工程WordTest:         然後,在介面中新增一個按鈕,按鈕文字就叫做“測試”:         在按鈕的點選事

轉發:centos徹底刪除命令(centos 新建刪除移動復制等命令)

目錄 str detail 文件夾 目的 刪除文件夾 -i 命名 新建文件夾 http://blog.csdn.net/lpdx111/article/details/16877725 centos徹底刪除文件夾、文件命令(centos 新建、刪除、移動、復制等命令:

第4天【管理管道用戶組管理用戶權限管理】

std 有效 i/o 屏幕 顯示行數 私有 文本處理 txt $path Bash的I/o重定向及管道 管道:使用豎杠符號‘|’表示,用於將前面命令的命名輸出結果作為命名後的操作對象。 重定向輸出:使用大於符號”>”表示,前面的命令成功執行以後,其屏幕輸出結果將保存到

系統基礎ext系統創建管理詳解系統的使用卸載fstab格式自動掛載系統的

文件系統創建文件系統--分區格式化 格式化: 低級格式化: 劃分磁道 高級格式化: 創建文件系統,按照某種特定的標準,將整個分區劃分為大小相同的若幹小的邏輯編址單元,每個這樣的單元稱為塊(block)【windows中稱為簇】; 劃分塊的標準: 在Linux的文件系統中,主要的塊的劃分

08-Linux基礎入門(六)-和目錄的屬性權限之類型擴展名權限基礎

ins tmp first 串口 .py 都是 公眾平臺 cond .com 一、Linux中的文件類型在Linux系統中,可以說一切(包括目錄、普通文件、設備文件等)皆為文件。文件類型包含有普通文件、目錄、字符設備文件、設備文件、符號鏈接文件、管道文件等等,當執行ls

05: 分布式系統 FastDFS原理 FastDFS配置應用

ble opp +++ load tin 分布式存儲 isa 4.2 libev 部署分布式存儲服務一、分布式文件系統介紹 二、配置分布式存儲服務2.1 配置主控節點(111) 裝包 修改配置文件 啟動服務 查看端口]# yum -y install

Linux自動掛載鏡像遠程桌面共享win7創建raid5卷創建HTML靜態路由

自動掛載 遠程桌面 共享windows文件夾 raid5卷 靜態路由 Linux自動掛載鏡像、遠程桌面、共享win文件夾、創建raid5卷、創建HTML文件及網絡靜態路由綜合小實驗 環境描述:Linux01和win7分別是公司內網中的兩臺PC機,Linux02是公網上的一臺web服務器根

Py3.X全棧-Day05-壓縮VIM編輯器進程相關命令

合並 歸檔 vim編輯器 day 系統啟動 vim bsp pytho pan 01 python全棧s3 day5 上節課復習 02 python全棧s3 day5 文件合並與文件歸檔 03 python全棧s3 day5 文件歸檔與兩種壓縮方式 04 pytho

btrfs系統壓縮工具for語句程序包管理

seq sys 寫一個腳本 ofo linux w 引擎 snapshot 狀態 之前 btrfs(b-tree、butter fs、better fs)oracle 公司研發的替代ext系列的cow(寫時復制)機制的文件系統,並遵循GPL協定 核心特性:1、多物理卷支持;

python處理excel(刪除儲存關閉)

        之前在工作中使用python處理excel的時候,要用到python對excel表格中的資料全部刪除,因此在網上找資料,但是隨便一搜你會看到很多處理excel的方法庫,比如pandas、win32com、openpyxl。但是大都不是很準確,總是摻雜一些其他操

QT樣式表styleSheet(qss)幫助的使用,相關術語概念

學習樣式表,最好的參考資料莫過於QT自帶的幫助文件,隨便開啟一個QT工程,點選->幫助->索引->styleSheet,即可開啟QT所有關於樣式表的幫助資訊,如下圖所示: 比如,我們想查查下拉列表控制元件QComboBox支援哪些樣式屬性,可以點選上圖

Linux C程式設計學習筆記(2):opencreatclose函式檔案的建立開啟關閉

my_create.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include

Nodejs學習day2———express框架cookiesession

express框架使用安裝     npm install express express-static配置建立服務  var server=express();監聽        server.listen(8080);處理請求  server.use('地址',funct

Fedora 25對比目錄對比工具——Meld——Linux平臺的對比工具

文件夾 linux 英文 軟件 meld 文件對比 處理文件的時候,經常遇到兩個非常相似的文件,需要對比、修改。Meld就是專門做這個工作的一款工具。Meld是一個可視的diff和合並工具。Meld是Linux軟件,用戶使用它可以比較2至3個文件並進行編輯,也可以比較2至3個文件夾並同

windows 如何不顯示帶點的夾?

9.png bsp mage 技術分享 資源管理器 ima lin 顯示 cnblogs 這些以點開頭的文件夾和文件是為了在 linux 中隱藏的。但是在 windows 中如何不顯示他們? 資源管理器: CMD: windows 如何不顯示帶點的文件

【Linux】Linux下統計當前文夾下的個數目錄個數

article logs 過濾 ref bash 輸出 子文件夾 http 輸出信息 統計當前文件夾下文件的個數,包括子文件夾裏的 ls -lR|grep "^-"|wc -l 統計文件夾下目錄的個數,包括子文件夾裏的 ls -lR|grep "^d"