九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第16講單文檔程序結(jié)構(gòu)

上傳人:fgh****35 文檔編號(hào):247448340 上傳時(shí)間:2024-10-18 格式:PPT 頁數(shù):44 大?。?.27MB
收藏 版權(quán)申訴 舉報(bào) 下載
第16講單文檔程序結(jié)構(gòu)_第1頁
第1頁 / 共44頁
第16講單文檔程序結(jié)構(gòu)_第2頁
第2頁 / 共44頁
第16講單文檔程序結(jié)構(gòu)_第3頁
第3頁 / 共44頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第16講單文檔程序結(jié)構(gòu)》由會(huì)員分享,可在線閱讀,更多相關(guān)《第16講單文檔程序結(jié)構(gòu)(44頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、Click to edit Title Slide,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,第,16,講 單文檔應(yīng)用程序的結(jié)構(gòu),基于,MFC,進(jìn)行應(yīng)用開發(fā),使用,VC+,的應(yīng)用程序向?qū)?MFC AppWizard,可以開發(fā):,單文檔,Single document,多文檔,Multiple document,對(duì)話框,Dialog based,三種類型的應(yīng)用程序。,本講開始學(xué)習(xí)單文

2、檔應(yīng)用程序的開發(fā)技術(shù),2,單文檔應(yīng)用案例,1,的程序運(yùn)行界面,3,本講主要內(nèi)容,利用向?qū)Ы⒁粋€(gè)單文檔應(yīng)用程序框架,向?qū)傻暮诵念惣捌涔δ?文檔,/,視圖,文字的顯示,菜單,4,單文檔案例,1,文本顯示案例,利用,MFC,建立一個(gè)單文檔應(yīng)用程序,用于在,客戶區(qū),顯示文本。程序的主要功能包括:,使用菜單命令,按照指定文本內(nèi)容和坐標(biāo)位置在客戶區(qū)顯示文本,保存文本內(nèi)容,等。,5,利用向?qū)Ы⒁粋€(gè)單文檔應(yīng)用程序框架,【,例,9-1】,利用,MFC,AppWizardexe,向?qū)梢粋€(gè),SDI,單文檔應(yīng)用程序,MyTextOut,。,6,【,編程步驟,】,(,1,)在,Visual C+ IDE,中

3、執(zhí)行,File|New,命令,打開,New,對(duì)話框。在項(xiàng)目類型列表框中選擇,MFC,AppWizardexe,項(xiàng),在,Project name,框中輸入項(xiàng)目名稱,本例為,MyTextOut,。選擇好合適的路徑。,(,2,)在,MFC AppWizard-Step 1,對(duì)話框中選擇,Single document,項(xiàng),,向?qū)?huì)創(chuàng)建一個(gè)單文檔應(yīng)用程序框架,在本例中,以下的各個(gè)步驟使用向?qū)峁┑哪J(rèn)選項(xiàng)即可。,利用向?qū)Ы⒁粋€(gè)單文檔應(yīng)用程序框架,7,利用向?qū)Ы⒁粋€(gè)單文檔應(yīng)用程序框架,編譯、連接、運(yùn)行,MFC,AppWizardexe,向?qū)?chuàng)建的應(yīng)用程序,MyTextOut,。運(yùn)行結(jié)果如圖所示。,

4、框架(菜單欄、工具欄、狀態(tài)欄),客戶區(qū),單文檔程序要包含文檔,并且一次只能打開一個(gè)文檔,其框架是指菜單欄、工具欄、狀態(tài)欄等界面元素,客戶區(qū)則用于展示用戶文檔。,8,向?qū)傻暮诵念惣捌涔δ?MFC,應(yīng)用程序框架實(shí)質(zhì)上是一個(gè)標(biāo)準(zhǔn)的,Windows,應(yīng)用程序,它具有標(biāo)準(zhǔn)的窗口、菜單欄和工具欄。,MFC,AppWizardexe,向?qū)橐话愕?SDI,應(yīng)用程序生成了五個(gè)核心類,它們分別是:,應(yīng)用程序類,CMyTextOutApp,框架窗口類,CMainFrame,文檔類,CMyTextOutDoc,視圖類,CMyTextOutView,文檔模板類,CSingleDocTemplate,9,向?qū)傻?/p>

5、核心類及其功能,一般應(yīng)用程序框架中所有類的名字由,MFC,AppWizardexe,向?qū)Ц鶕?jù)一定的規(guī)則自動(dòng)命名。,應(yīng)用程序框架中類(框架窗口類例外)的命名規(guī)則一般遵照如下要求:,Class Name = C +,ProjectName,+,ClassType,10,向?qū)傻暮诵念惣捌涔δ?1,應(yīng)用程序類,CMyTextOutApp,CMyTextOutApp,類是,MFC,的,CWinApp,類的派生類。它的主要功能有:,應(yīng)用程序的初始化;,程序的啟動(dòng);,程序運(yùn)行結(jié)束時(shí)的清理工作。,應(yīng)用程序?qū)ο?theApp,是一個(gè)唯一的全局變量,它的主要功能是通過調(diào)用,WinMain,(),主函數(shù)啟動(dòng)程序

6、的運(yùn)行。,MFC,應(yīng)用程序框架也有一個(gè)作為程序入口點(diǎn)的,WinMain,(),主函數(shù),但在源程序中看不見該函數(shù),它在,MFC,中已定義好并同應(yīng)用程序相鏈接。,11,向?qū)傻暮诵念惣捌涔δ?2,框架窗口類,CMainFrame,CMainFrame,類是,MFC,的,CFrameWnd,類的派生類。它主要負(fù)責(zé)創(chuàng)建標(biāo)題欄、菜單欄、工具欄和狀態(tài)欄。不同的,SDI,應(yīng)用程序,其框架窗口類名和文件名是統(tǒng)一的。,CMainFrame,類中聲明了框架窗口中的工具欄,m_wndToolBar,、狀態(tài)欄,m_wndStatusBar,兩個(gè)成員變量和四個(gè)成員函數(shù)。,12,向?qū)傻暮诵念惣捌涔δ?3,文檔類,C

7、MyTextOutDoc,類,CMyTextOutDoc,是,MFC,的,CDocument,類的派生類,它用于管理和維護(hù)數(shù)據(jù),包括應(yīng)用程序數(shù)據(jù)的保存和裝載,實(shí)現(xiàn)文檔的序列化功能。,4,視圖類,CMyTextOutView,類,CMyTextOutView,是,MFC,的,CView,類的派生類,它主要負(fù)責(zé)客戶區(qū)文檔數(shù)據(jù)的顯示,以及如何進(jìn)行人機(jī)交互。,13,向?qū)傻暮诵念惣捌涔δ?5,文檔模板類,CSingleDocTemplate,文檔、視圖、框架類和所涉及的資源形成了一種固定的聯(lián)系,這種固定的聯(lián)系就稱為文檔模板。,文檔模板類,CSingleDocTemplate,是,MFC,的,CDoc

8、Template,類的派生類,CSingleDocTemplate,文檔模板類在應(yīng)用程序中有著非常重要的作用,是它將原本獨(dú)立的文檔、視圖和框架窗口對(duì)象聯(lián)系在一起。,14,文檔,/,視圖,為了統(tǒng)一和簡化數(shù)據(jù)處理,基于,MFC,的應(yīng)用程序通常采用,文檔,/,視圖結(jié)構(gòu),。,在,MFC,文檔,/,視圖結(jié)構(gòu)中,有關(guān)數(shù)據(jù)處理的工作可以分為,數(shù)據(jù)的處理,和,數(shù)據(jù)的顯示,兩個(gè)部分。,文檔負(fù)責(zé)數(shù)據(jù)的處理、數(shù)據(jù)的維護(hù)以及數(shù)據(jù)的存儲(chǔ),,,視圖則負(fù)責(zé)數(shù)據(jù)的顯示和數(shù)據(jù)的編輯,,,客戶區(qū)消息的響應(yīng)和處理等,工作,即充當(dāng)了文檔與用戶之間的交互界面。,15,文檔,/,視圖,文檔(,document,)是,MFC,應(yīng)用程序中所

9、處理數(shù)據(jù)的集合,包括文本、圖形、圖像和表格等類型。,視圖(,view,)是文檔在應(yīng)用程序窗口中的一個(gè)映像。視圖就如一個(gè)觀景器,用戶通過視圖看到文檔,通過視圖修改文檔。,一個(gè)視圖是一個(gè)沒有邊框的窗口,它位于主框架窗口中的客戶區(qū)。視圖是文檔對(duì)外顯示的窗口,但它并不能完全獨(dú)立,它必須依存在一個(gè)框架窗口內(nèi)。,16,文檔,/,視圖,當(dāng)打開某種類型的文件時(shí),應(yīng)用程序必須確定哪一種文檔模板用于解釋這種文件。在初始化程序時(shí),必須首先注冊(cè)文檔模板,以便程序利用這個(gè)模板來完成主框架窗口、視圖、文檔對(duì)象的創(chuàng)建和資源的裝入。,BOOL,CMyTextOutApp:InitInstance,(),CSingleDocT

10、emplate,*,pDocTemplate,; /,聲明文檔模板指針,pDocTemplate,= new,CSingleDocTemplate,( /,創(chuàng)建文檔模板對(duì)象,IDR_MAINFRAME, /,文檔模板使用的資源,ID,RUNTIME_CLASS(CMyTextOutDoc,), /,創(chuàng)建文檔對(duì)象,RUNTIME_CLASS(CMainFrame,), /,創(chuàng)建主,SDI,框架窗口對(duì)象,RUNTIME_CLASS(CMyTextOutView,); /,創(chuàng)建視圖對(duì)象,AddDocTemplate(pDocTemplate,); /,將文檔模板加入鏈表,17,表,9-1 MFC,應(yīng)

11、用程序?qū)ο笾g的相互訪問方法,當(dāng)前位置,被訪問的位置,訪問方法,文檔,視圖,GetFirstViewPosition,(),GetNextView,(),UpdateAllView,(),文檔,模板,GetDocTemplate,(),視圖,文檔,GetDocument,(),視圖,框架,GetParentFrame,(),框架,視圖,GetActiveView,(),框架,文檔,GetActiveDocument,(),MDI,主框架,MDI,子框架,MDIGetActive,(),MDI,子框架,MDI,主框架,GetParentFrame,(),任何位置,應(yīng)用程序,AfxGetApp,(

12、),任何位置,主框架,AfxGetMainWnd,(),18,文字的顯示,【,例,9-2】,以例,9-1,的單文檔應(yīng)用程序,MyTextOut,為基礎(chǔ),添加代碼實(shí)現(xiàn)文本輸出。程序運(yùn)行后在視圖窗口顯示文本串“這是我的第一個(gè),單文檔,應(yīng)用程序,!”,。,19,文字的顯示,【,編程步驟,】,(,1,)本例需要在視圖類的成員函數(shù),OnDraw,(),中添加顯示文本的代碼來實(shí)現(xiàn)屏幕輸出。,在例,9-1,生成的框架代碼基礎(chǔ)上,打開,Workspace,窗口單擊,ClassView,標(biāo)簽,找到,CMyTextOutView,類,點(diǎn)擊其左邊的“,+”,展開該類,雙擊其成員函數(shù),OnDraw,(),,在編輯窗口

13、出現(xiàn)該成員函數(shù)代碼,在指定位置手工添加如下粗體所示代碼。,20,文字的顯示,void,CMyTextOutView:,OnDraw,(CDC,*,pDC,),CMyTextOutDoc,*,pDoc,=,GetDocument,();,/,獲得文檔類對(duì)象的指針,ASSERT_VALID(pDoc,);,/,檢查該指針是否為空,/ TODO: add draw code for native data here,/,在視圖內(nèi)的設(shè)備坐標(biāo),(150,100),位置輸出文本,pDC,-,TextOut,(150,100,“,這是我的第一個(gè),單文檔,應(yīng)用程序,!);,TextOut,(),是,CDC,類

14、的成員函數(shù)。其功能是在指定的位置輸出文本串。函數(shù)原型如下:,CDC:,TextOut,(,int,x,int,y, const,CString,&,str,),其中參數(shù),x,y,指定文本輸出位置坐標(biāo)。,參數(shù),str,指定輸出內(nèi)容。,MFC,應(yīng)用程序通常在視圖類,CView,的成員函數(shù),OnDraw,(),中實(shí)現(xiàn)屏幕輸出,因?yàn)樵谥禺嫶翱跁r(shí)會(huì)自動(dòng)調(diào)用函數(shù),OnDraw,(),,這樣才能保證顯示的內(nèi)容在每次重畫窗口時(shí)都能顯示出來。,GetDocument,(),是視圖類的成員函數(shù),調(diào)用它可以返回與視圖相關(guān)聯(lián)的文檔對(duì)象的指針,利用這個(gè)指針可以訪問文檔類及其派生類的公有成員。通常的用法如下:,CMyTe

15、xtOutDoc,*,pDoc,=,GetDocument,();,ASSERT_VALID(pDoc,);,ASSERT_VALID(),是,MFC,庫中的斷言 。,ASSERT_VALID(),的,用法是,:,ASSERT_VALID(,一個(gè)從,CObject,類派生的對(duì)象指針,),功能:用于對(duì),C+,對(duì)象或指針進(jìn)行有效性判斷,如果出錯(cuò),會(huì)彈出帶斷言信息(程序,模塊,,assertion,行)的對(duì)話框。對(duì)話框有,3,個(gè)按鈕:“,Break”,,“,Repeat”,(“,Debug”,), 和“,Continue”,(“,Ignore”,)?!?Break”,結(jié)束程序,“,Continue”

16、,忽略斷言,最有用的是“,Repeat”,按鈕。按下它會(huì)在斷言的地方打開源代碼編輯器,.,在這里可以測(cè)試所有的變量值并找出問題所在。,21,文字的顯示,編譯、連接、運(yùn)行程序。運(yùn)行結(jié)果如圖。,22,設(shè)備環(huán)境,DC,Windows,應(yīng)用程序通過為指定設(shè)備(屏幕,打印機(jī)等)創(chuàng)建一個(gè)設(shè)備環(huán)境(,Device Context, DC,),在,DC,表示的邏輯意義的“畫布”上進(jìn)行圖形的繪制。,DC,是一種包含設(shè)備信息的數(shù)據(jù)結(jié)構(gòu),它包含了物理設(shè)備所需的各種狀態(tài)信息。,23,DC,實(shí)際上是一個(gè)關(guān)于如何繪制圖形的方法的集合。它可以確立在應(yīng)用窗口中繪制圖形的方式,即確定繪圖模式和映射模式。當(dāng)應(yīng)用程序需要在某個(gè)圖形

17、設(shè)備上繪圖時(shí),首先要獲取繪圖窗口區(qū)域的一個(gè)設(shè)備環(huán)境,DC,,之后才能選取合適的繪圖工具進(jìn)行繪圖工作。,為了便于繪圖,,Windows,系統(tǒng)在初始化時(shí)為程序提供了一套默認(rèn)的繪圖屬性和對(duì)象集合,所以程序在取得了合適的,DC,之后,就可以使用這些默認(rèn)的繪圖屬性和對(duì)象進(jìn)行繪圖。例如,,Windows,缺省的,DC,包括了一支黑色的畫筆,所繪制的線條都是黑色的。,設(shè)備環(huán)境,DC,24,圖形設(shè)備接口,GDI,為了方便圖形繪制,,Windows,把與繪圖相關(guān)的操作都制作成函數(shù),這些函數(shù)的集合稱為,圖形設(shè)備接口(,graphical device interface,,,GDI,),。,GDI,提供了各種繪圖

18、函數(shù),例如,GDI,中有繪制矩形的函數(shù),Rectangle(),、繪制文本的函數(shù),DrawText,(),等。,GDI,還提供了一套繪圖工具,如,Pen,(畫筆)、,Brush,(畫刷)、,Font,(字體)等。,由于在,Windows,屏幕上看到的所有內(nèi)容都是圖形,所以在應(yīng)用窗口中每次進(jìn)行顯示和編輯操作時(shí),都必須調(diào)用特定的,GDI,函數(shù)。,25,CDC,類,為了支持,GDI,繪圖,,MFC,提供了兩種重要的類:,設(shè)備環(huán)境類(,CDC,類),,用于設(shè)置繪圖屬性和繪制圖形;,繪圖對(duì)象類,,封裝了各種,GDI,繪圖對(duì)象,包括畫筆、刷子、字體、位圖、調(diào)色板和區(qū)域。,MFC,中,設(shè)備環(huán)境,DC,是由,

19、VC+,的,CDC,類對(duì)象來表示的,可以調(diào)用,CDC,的很多成員函數(shù)來完成各種各樣的繪圖操作。,26,CPaintDC,類,CPaintDC,是所有,CDC,類中最常用的一個(gè)類,它代表了應(yīng)用程序窗口的客戶區(qū),它只能使用于,CView,類的成員函數(shù),OnDraw,中。,MFC AppWizard,應(yīng)用程序向?qū)?chuàng)建的,OnDraw,(),函數(shù)自動(dòng)支持所獲取的,DC,。,OnDraw,函數(shù)的聲明為:,OnDraw,(,CDC *,pDC,),;,這個(gè)函數(shù)的參數(shù),pDC,就是指向,CPaintDC,類對(duì)象的指針,在,OnDraw,函數(shù)中可以使用,CDC,類的成員函數(shù)對(duì)這個(gè)對(duì)象進(jìn)行繪圖操作。,27,WM

20、_PAINT,消息,系統(tǒng)每次創(chuàng)建應(yīng)用程序窗口或窗口需要刷新時(shí)都會(huì)產(chǎn)生,WM_PAINT,消息,系統(tǒng)接收到這個(gè)消息就會(huì)自動(dòng)調(diào)用,OnDraw,函數(shù),應(yīng)用程序也可以使用相關(guān)函數(shù)來激活,OnDraw,函數(shù),因此,程序中所有對(duì)窗口客戶區(qū)進(jìn)行繪圖的代碼都應(yīng)該寫在這個(gè)函數(shù)中。,28,GDI,坐標(biāo)系和映射模式,在,Windows,屏幕上繪圖離不開坐標(biāo)系。上面程序中使用的坐標(biāo)系是,MM_TEXT,映射模式,,MM_TEXT,為,GDI,默認(rèn)的映射模式。該模式下的原點(diǎn)為客戶區(qū)左上角,向下、向右為正向。,Windows,映射模式就是在,Windows,方式下的屏幕坐標(biāo)方式。一個(gè)實(shí)際的物理屏幕是由像素組成的。例如,

21、1024768,分辨率就是指物理屏幕的實(shí)際寬度為,1024,個(gè)像素,高度為,768,個(gè)像素。,29,表,Windows,的,8,種映射模式,映射模式,映射,識(shí)別碼,邏輯單位,坐標(biāo)系設(shè)定,MM_TEXT,1,一個(gè)像素,X,軸正方向朝右,,Y,軸正方向朝下,MM_LOMETRIC,2,0.1,毫米,X,軸正方向朝右,,Y,軸正方向朝上,MM_HIMETRIC,3,0.01,毫米,X,軸正方向朝右,,Y,軸正方向朝上,MM_LONGLISH,4,0.01,英寸,X,軸正方向朝右,,Y,軸正方向朝上,MM_HIENGLISH,5,0.001,英寸,X,軸正方向朝右,,Y,軸正方向朝上,MM_TWIPS

22、,6,1/1440,英寸,X,軸正方向朝右,,Y,軸正方向朝上,MM_ISOTROPIC,7,系統(tǒng)確定,X,、,Y,軸可任意調(diào)節(jié),,X,、,Y,軸比例為,1:1,MM_ANISOTROPIC,8,系統(tǒng)確定,X,、,Y,軸可任意調(diào)節(jié),,X,、,Y,軸比例任意,30,菜單,【,例,9-3】,改進(jìn)例,9-2,的單文檔應(yīng)用程序,MyTextOut,,程序運(yùn)行后使用菜單命令,調(diào)用對(duì)話框輸入顯示的文本內(nèi)容和顯示的坐標(biāo)位置,按照輸入的內(nèi)容在視圖區(qū)顯示文本。,31,菜單,建立菜單資源,【,編程步驟,】,(,1,)建立菜單資源。在向?qū)傻某绦蚩蚣苤行薷牟藛钨Y源,添加“文本,|,顯示文本”菜單。,在,Resou

23、rceView,中找到,IDR_MAINFRAME,資源,雙擊之,在顯示出來的主菜單項(xiàng)最后的虛線空白框處雙擊,在彈出的,properties,對(duì)話框中填寫,Caption,項(xiàng)為“文本,(&T)”,,可以看到主菜單最后一個(gè)菜單項(xiàng)即為“文本”,字符“,&”,用于在顯示字母,T,時(shí)加下劃線,表示該菜單命令的快捷鍵是“,Alt+T,”,。并使用鼠標(biāo)拖動(dòng)該菜單項(xiàng)移至“幫助”菜單項(xiàng)左側(cè)。注意,主菜單只有標(biāo)題而沒有相應(yīng)的,ID,標(biāo)識(shí)。,32,菜單,建立菜單資源,33,菜單,建立菜單資源,接著為主菜單添加菜單項(xiàng)。在“文本”菜單下面的虛線空白框處雙擊,在彈出的,properties,對(duì)話框中填寫,Caption

24、,項(xiàng)為“顯示文本”,,ID,是該菜單項(xiàng)的標(biāo)識(shí),在此框中輸入,ID_TEXT_OUTPUT,。,在,Prompt,文本框中輸入狀態(tài)欄提示語“在視圖區(qū)給定位置顯示輸入的文本內(nèi)容”。,34,菜單,建立菜單資源,35,菜單,(,2,)添加菜單命令處理函數(shù)。,按下,Ctrl+W,鍵啟動(dòng),ClassWizard,,在,Class name,下拉列表框中選擇文檔類,CMyTextOutDoc,,在,Object IDs,列表框中選擇,ID_TEXT_OUTPUT,(“顯示文本”菜單項(xiàng)的,ID,),在,Messages,列表框中選擇,COMMAND,,單擊,Add Function,按鈕,為“顯示文本”菜單項(xiàng)

25、添加命令處理函數(shù),CMyTextOutDoc:OnTextOutput,(),。,36,菜單,(,3,)創(chuàng)建對(duì)話框資源。在,ResourceView,中找到,Dialog,資源,鼠標(biāo)右擊彈出快捷菜單,單擊“,Insert Dialog”,,添加一個(gè)新對(duì)話框,修改其,ID,為,IDD_DLG_TEXT,,,Caption,項(xiàng)為“請(qǐng)輸入文本內(nèi)容和顯示位置”。參見圖示。,之后在對(duì)話框上放置相應(yīng)的控件并布局。,37,菜單,(,4,)為對(duì)話框資源創(chuàng)建對(duì)應(yīng)的對(duì)話框類。雙擊對(duì)話框資源,彈出為對(duì)話框增加類的對(duì)話框。設(shè)置對(duì)話框類名為,CTextDialog,,為該類自動(dòng)生成兩個(gè)文件,TextDialog.h,和

26、,TextDialog.cpp,。,38,菜單,為三個(gè)編輯框控件添加成員變量,m_strText,、,m_nText_X,、,m_nText_Y,。如圖所示。,39,菜單,(,5,)建立文本對(duì)話框與文檔類的關(guān)聯(lián)。,下面在文檔類,CMyTextOutDoc,中加入與上述控件變量對(duì)應(yīng)的三個(gè)成員變量,即在,MyTextOutDoc.h,文件中加入:,class,CMyTextOutDoc,: public,CDocument,protected: / create from serialization only,CMyTextOutDoc,();,DECLARE_DYNCREATE(CMyTextO

27、utDoc,),手工添加的三個(gè)變量,int,m_nText_X,;,int,m_nText_Y,;,CString,m_strText,;,40,菜單,(,6,)在,CMyTextOutDoc.cpp,文件中加入菜單命令響應(yīng)函數(shù),OnTextOutput,(),的代碼。,void,CMyTextOutDoc:OnTextOutput,(),/ TODO: Add your command handler code here,CTextDialog,tdlg,;,/,定義一個(gè)對(duì)話框?qū)ο?if(tdlg.DoModal,()=IDOK),/,顯示對(duì)話框,/,保存編輯框數(shù)據(jù) 將控件變量的數(shù)據(jù)保存到文

28、檔類成員變量中,m_nText_X,=,tdlg.m_nText_X,;,m_nText_Y,=,tdlg.m_nText_Y,;,m_strText,=,tdlg.m_strText,;,UpdateAllViews(NULL,);,接著需要在,MyTextOutDoc.cpp,文件中加入:,#include ,TextDialog.h,將文本對(duì)話框的成員變量值賦給文檔類的相應(yīng)的成員變量,m_strText,m_nTextX,m_nTextY,,文檔類已經(jīng)獲得了對(duì)話框控件上的數(shù)據(jù),怎么將其顯示在客戶區(qū)呢?,這時(shí)需要調(diào)用視圖類,CDrawView,的方法,OnDraw,,該方法負(fù)責(zé)文檔數(shù)據(jù)在客

29、戶區(qū)的顯示。,更新與該文檔有關(guān)的所有視圖的方法是調(diào)用,CDocument,類的成員函數(shù),UpdateAllViews,(),。其原型為:,void,UpdateAllViews(CView,*,pSender, LPARAM,lHint,= 0L,CObject,*,pHint,=NULL ),UpdateAllViews,通知該文檔除了,pSender,之外的所有全部視圖進(jìn)行更新。,其第一個(gè)參數(shù),pSender,設(shè)為,NULL,,表示所有與當(dāng)前文檔相關(guān)的視圖都要重繪。,lHint,是用于傳送更新視圖時(shí),需要傳送的額外信息參數(shù);,pHint,是指向記錄更新視圖所需額外信息的控件。,41,菜單,

30、(,7,)修改,CMyTextOutView,類中,OnDraw,函數(shù)的代碼:將原來的,pDC,-TextOut(150,100,“,這是我的第一個(gè),單文檔,應(yīng)用程序,!);,替換為:,pDC,-,TextOut(pDoc,-,m_nText_X,pDoc,-,m_nText_Y,pDoc,-,m_strText,);,42,菜單,編譯連接運(yùn)行程序后,點(diǎn)擊菜單命令,在對(duì)話框中輸入相應(yīng)的內(nèi)容,其運(yùn)行結(jié)果如圖所示。,43,課堂練習(xí),1.,完成例,9-3,。,2.,在例,9-3,的基礎(chǔ)上,參見講義,P258259,,在視圖區(qū)輸出多行文本。,課后作業(yè),1.,完成未能在課上完成的課堂練習(xí)。,2.,習(xí)題,9-01,、,9-02,、,9-04,。,44,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!