visual+c++60可視化編程2_第1頁(yè)
visual+c++60可視化編程2_第2頁(yè)
visual+c++60可視化編程2_第3頁(yè)
visual+c++60可視化編程2_第4頁(yè)
visual+c++60可視化編程2_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、visual c+6.0可視化編程 1實(shí)例47 SDI應(yīng)用程序框架建立一個(gè)SDI應(yīng)用程序第一步選擇Single document,其他取默認(rèn)設(shè)置。2項(xiàng)目工作區(qū)類(lèi)視圖文件視圖資源視圖文件組成 StdAfx.h和StdAfx.cpp包含程序預(yù)編譯的頭文件Resource.h包含所有資源符號(hào)定義的標(biāo)準(zhǔn)頭文件。 program47.rc包含資源描述信息的資源文件-圖標(biāo)、位圖和光標(biāo)等。 program47.rc2包含不能在集成開(kāi)發(fā)環(huán)境中直接編輯的資源 program47.ico是應(yīng)用程序的圖標(biāo)文件。 program47.bmp是包含工具欄按鈕的位圖文件,可以在集成環(huán)境中進(jìn)行編輯。 Readme.txt是

2、應(yīng)用程序描述文件,對(duì)AppWizard生成的原文件進(jìn)行描述3用Developer Studio建立項(xiàng)目Developer Studio會(huì)創(chuàng)建很多中間文件 APS /支持ResourceViewBSC /瀏覽器信息文件CLW /支持ClassWizardDSP /項(xiàng)目文件,不能刪除和用文本編輯器編輯DSW /工作空間文件,不能刪除和用文本編輯器編輯MAK /外部的創(chuàng)建文件NCB /支持ClassView OPT /保存工作空間的配置PLG /建立日志文件4一。應(yīng)用程序框架“應(yīng)用程序框架” 定義了應(yīng)用程序的輪廓,為用戶提供了標(biāo)準(zhǔn)的實(shí)現(xiàn)接口。Windows應(yīng)用程序的建立都是基于這個(gè)框架展開(kāi)的。5應(yīng)用

3、程序的體系結(jié)構(gòu)基于框架窗口的應(yīng)用程序基于對(duì)話框的應(yīng)用程序基于文檔/視圖的應(yīng)用程序6與基于框架窗口的程序框架有關(guān)的 MFC類(lèi)結(jié)構(gòu)CCmdTargetCWinThreadCWinAppCWndCFrameWndCObject7CCmdTarget類(lèi)CCmdTarget 是 MFC 消息映射結(jié)構(gòu)的基類(lèi)。消息映射將命令或消息發(fā)送給應(yīng)用程序編寫(xiě)的處理命令或消息的響應(yīng)函數(shù)。具有消息處理能力的類(lèi)均應(yīng)為該類(lèi)的派生類(lèi)。8CWinThread 類(lèi)Microsoft 的類(lèi)庫(kù)支持多個(gè)線程的并行執(zhí)行。每個(gè)應(yīng)用程序至少有一個(gè)線程(被稱(chēng)作主線程)。CWinThread 封裝了操作系統(tǒng)的調(diào)度功能。9CWinApp類(lèi)CWinA

4、pp 封裝了 Windows 應(yīng)用程序初始化、運(yùn)行、終止應(yīng)用程序的代碼。基于框架建立的應(yīng)用程序必須有一個(gè)且只有一個(gè)從CWinApp派生的類(lèi)對(duì)象。10CWnd類(lèi)CWnd是各種窗口、對(duì)話框和控制框的通用基類(lèi),提供窗口處理中公共的窗口類(lèi)注冊(cè)、窗口創(chuàng)建與撤消等處理操作。11CFrameWnd類(lèi)提供了一個(gè) Windows 單文檔界面,該界面具有重疊或彈出功能,并且可以通過(guò)成員函數(shù)實(shí)現(xiàn)對(duì)窗口的某些控制操作。12基于框架窗口的應(yīng)用程序結(jié)構(gòu)的類(lèi)關(guān)系CWinApp應(yīng)用程序?qū)ο?m_pMainWndCFrameWnd應(yīng)用程序框架窗口13程序執(zhí)行過(guò)程初始化應(yīng)用程序 初始化實(shí)例 創(chuàng)建窗口顯示窗口進(jìn)入消息循環(huán)結(jié)束應(yīng)用程

5、序WinMain(入口)CHelloApp:InitInstanceCHelloWnd:CHelloWndCWnd:ShowWindowCWnd:UpdateWindowCWinApp:RunCWindApp:ExitInstanceCWnd:CreateCHelloApp:InitApplication14WinMain函數(shù)WinMain函數(shù)是應(yīng)用程序的入口。用戶不需要編寫(xiě)該函數(shù)代碼,由應(yīng)用程序框架提供。主要完成注冊(cè)窗口類(lèi)及消息循環(huán)等標(biāo)準(zhǔn)服務(wù)。程序運(yùn)行時(shí),Windows自動(dòng)調(diào)用該函數(shù)。15CWinApp 對(duì)象CWinApp 的派生類(lèi)對(duì)象要作為全程量定義。WinMain 函數(shù)將會(huì)調(diào)用 Init

6、Application和 InitInstance 成員函數(shù)。注意:InitInstance是必須覆蓋的成員函數(shù)。16InitInstance成員函數(shù)通常主要負(fù)責(zé)創(chuàng)建應(yīng)用程序的主窗口對(duì)象,并更新、顯示該主窗口。NewShowWindowUpdateWindow17Run 及 ExitInstance成員函數(shù)初始化后,WinMain自動(dòng)調(diào)用 Run,它主要負(fù)責(zé)執(zhí)行消息循環(huán)。退出應(yīng)用程序時(shí),WinMain要調(diào)用ExitInstace成員函數(shù)。18主邊框窗口CProgram47Frame類(lèi):此類(lèi)的對(duì)象代表著應(yīng)用程序的主窗口。它的構(gòu)造函數(shù)調(diào)用基類(lèi)CFrameWnd的Create函數(shù)創(chuàng)建具體的窗口結(jié)構(gòu)。

7、(程序處理舉例) CProgram47Frame:OnLButtonDown函數(shù):消息處理機(jī)制,當(dāng)鼠標(biāo)坐鍵被按下這一事件被映射到CProgram47Frame的OnLButtonDown函數(shù)上,進(jìn)行消息處理。視圖類(lèi) OnPaint()是當(dāng)視類(lèi)窗口需要在屏幕上輸出時(shí)被調(diào)用,負(fù)責(zé)完成窗口的屏幕輸出顯示工作;OnPrint()是當(dāng)打印一頁(yè)時(shí)被調(diào)用,負(fù)責(zé)完成向某頁(yè)打印紙上打印。這兩個(gè)函數(shù)的缺省實(shí)現(xiàn)中包含了對(duì)OnDraw(CDC *pDC)的調(diào)用。19程序運(yùn)行過(guò)程分析 CProgram47App類(lèi):CProgram47App類(lèi)的對(duì)象代表一個(gè)應(yīng)用程序,CWinApp基類(lèi)決定它的大部分行為。 CProgra

8、m47App theApp; 全局對(duì)象,在程序開(kāi)始運(yùn)行時(shí),調(diào)用 CProgram47App類(lèi)的構(gòu)造函數(shù)生成。 WinMain函數(shù):并非不存在只是已經(jīng)被隱藏在應(yīng)用程序框架內(nèi)部。 應(yīng)用程序的啟動(dòng):當(dāng)開(kāi)始運(yùn)行應(yīng)用程序時(shí)WINDOWS會(huì)調(diào)用WinMain函數(shù),WinMain會(huì)查找該應(yīng)用程序的全局對(duì)象theApp。20CProgram47App:InitInstance成員函數(shù):發(fā)現(xiàn)theApp后自動(dòng)調(diào)用重載的虛函數(shù)InitInstance來(lái)完成主窗口的構(gòu)造和顯示工作。記住這個(gè)函數(shù)。CWinApp:Run成員函數(shù):WinMain在調(diào)用InitInstance之后緊接著調(diào)用Run函數(shù),它被隱藏在基類(lèi)中負(fù)責(zé)

9、傳遞應(yīng)用程序的消息給相應(yīng)的窗口。 (完成了windows API 中函數(shù)GetMessage(), TranslateMessage()和DispatchMessage()的功能。) OnIdle()是在Run()的空閑時(shí)間得到執(zhí)行。當(dāng)OnIdle()接收到消息后,轉(zhuǎn)送到Run()進(jìn)行處理。 ExitInstance()用于在程序運(yùn)行實(shí)例終止時(shí),進(jìn)行相關(guān)資源的清理及釋放。關(guān)閉應(yīng)用程序:用戶關(guān)閉應(yīng)用程序時(shí)會(huì)有一系列事件發(fā)生。首先CProgram47Frame對(duì)象被刪除,然后退出Run,進(jìn)而退出WinMain,最后刪除CProgram47App對(duì)象。 21程序的死亡: 使用者單擊,于是發(fā)出WM-C

10、LOSE CMainWindow并沒(méi)有設(shè)置WM-CLOSE處理程序,于是交給默認(rèn)的處理程序,默認(rèn)函數(shù)對(duì)于WM-CLOSE的處理方式是調(diào)用:DestroyWindow,并因而發(fā)出WM-DESTROY默認(rèn)的WM-DESTROY處理方式是調(diào)用:PostQuitMessage,因此發(fā)出WM-QUIT.22CWinApp:Run收到WM-QUIT后會(huì)結(jié)束內(nèi)部之消息循環(huán),然后調(diào)用ExitInstance,這是CWinApp的一個(gè)虛擬函數(shù);如果CMyWinApp改寫(xiě)了ExitInstance,那么CWinApp:Run所調(diào)用的就是CMyWinApp:ExitInstance,否則就是CWinApp:Exit

11、Instance 最后回到AfxWinMain,執(zhí)行AfxWinTerm,結(jié)束程序。23MFC應(yīng)用程序編程體現(xiàn)了幾個(gè)特性:封裝 構(gòu)成MFC框架的是MFC類(lèi)庫(kù)。MFC類(lèi)庫(kù)是C+類(lèi)庫(kù)。這些類(lèi)封裝了Win32應(yīng)用程序編程接口、封裝了應(yīng)用程序的概念、封裝了OLE特性、封裝了ODBC和DAO數(shù)據(jù)訪問(wèn)的功能等等,分述如下。 24(1)對(duì)Win32應(yīng)用程序編程接口的封裝 用一個(gè)C+ Object來(lái)包裝一個(gè)Windows Object。例如:CWnd是一個(gè)C+ window object,它把Windows window(HWND)和Windows window有關(guān)的API函數(shù)封裝在C+ window obj

12、ect的成員函數(shù)內(nèi),后者的成員變量m_hWnd就是前者的窗口句柄。25(2)對(duì)應(yīng)用程序概念的封裝 使用SDK編寫(xiě)Windows應(yīng)用程序時(shí),總要定義窗口過(guò)程,登記Windows Class,創(chuàng)建窗口等等。這兩個(gè)部分其實(shí)都有相當(dāng)程度的不變性,MFC就是把有著相當(dāng)固定行為的WinMain內(nèi)部操作封裝在CWinApp中;把有著相當(dāng)固定行為的WndProc內(nèi)部操作封裝在CFrameWnd中。也就是說(shuō),CWinApp代表Windows應(yīng)用程序本體,CFrameWnd代表一個(gè)主框窗口。 26MFC把其他許多類(lèi)似的處理封裝起來(lái),替程序員完成這些工作。另外,MFC提出了以文檔-視圖為中心的編程模式,MFC類(lèi)庫(kù)封

13、裝了對(duì)它的支持。文檔是用戶操作的數(shù)據(jù)對(duì)象,視圖是數(shù)據(jù)操作的窗口,用戶通過(guò)它處理、查看數(shù)據(jù)。27(3)對(duì)COM/OLE特性的封裝 OLE建立在COM模型之上,由于支持OLE的應(yīng)用程序必須實(shí)現(xiàn)一系列的接口(Interface),因而相當(dāng)繁瑣。MFC的OLE類(lèi)封裝了OLE API大量的復(fù)雜工作,這些類(lèi)提供了實(shí)現(xiàn)OLE的更高級(jí)接口。 (4)對(duì)ODBC功能的封裝 以少量的能提供與ODBC之間更高級(jí)接口的C+類(lèi),封裝了ODBC API的大量的復(fù)雜的工作,提供了一種數(shù)據(jù)庫(kù)編程模式。282.繼承 首先,MFC抽象出眾多類(lèi)的共同特性,設(shè)計(jì)出一些基類(lèi)作為實(shí)現(xiàn)其他類(lèi)的基礎(chǔ)。這些類(lèi)中最重要的類(lèi)是CObject和Cmd

14、Target。CObject是MFC的根類(lèi),絕大多數(shù)MFC類(lèi)是其派生的。 包括CCmdTarget。CObject 實(shí)現(xiàn)了一些重要的特性,包括動(dòng)態(tài)類(lèi)信息、動(dòng)態(tài)創(chuàng)建、對(duì)象序列化、對(duì)程序調(diào)試的支持,等等。所有從CObject派生的類(lèi)都將具備或者可以具備CObject所擁有的特性。29CCmdTarget通過(guò)封裝一些屬性和方法,提供了消息處理的架構(gòu)。MFC中,任何可以處理消息的類(lèi)都從CCmdTarget派生。針對(duì)每種不同的對(duì)象,MFC都設(shè)計(jì)了一組類(lèi)對(duì)這些對(duì)象進(jìn)行封裝,每一組類(lèi)都有一個(gè)基類(lèi),從基類(lèi)派生出眾多更具體的類(lèi)。這些對(duì)象包括以下種類(lèi):窗口對(duì)象,基類(lèi)是CWnd;應(yīng)用程序?qū)ο?,基?lèi)是CWinThre

15、ad;文檔對(duì)象,基類(lèi)是CDocument,等等。303.虛擬函數(shù)和動(dòng)態(tài)約束 MFC以“C+”為基礎(chǔ),自然支持虛擬函數(shù)和動(dòng)態(tài)約束。但是作為一個(gè)編程框架,有一個(gè)問(wèn)題必須解決:如果僅僅通過(guò)虛擬函數(shù)來(lái)支持動(dòng)態(tài)約束,必然導(dǎo)致虛擬函數(shù)表過(guò)于臃腫,消耗內(nèi)存,效率低下。例如,CWnd封裝 Windows窗口對(duì)象時(shí),每一條Windows消息對(duì)應(yīng)一個(gè)成員函數(shù),這些成員函數(shù)為派生類(lèi)所繼承。如果這些函數(shù)都設(shè)計(jì)成虛擬函數(shù),由于數(shù)量太多,實(shí)現(xiàn)起來(lái)不現(xiàn)實(shí)。31于是,MFC建立了消息映射機(jī)制,以一種富有效率、便于使用的手段解決消息處理函數(shù)的動(dòng)態(tài)約束問(wèn)題。 這樣,通過(guò)虛擬函數(shù)和消息映射,MFC類(lèi)提供了豐富的編程接口。程序員繼承

16、基類(lèi)的同時(shí),把自己實(shí)現(xiàn)的虛擬函數(shù)和消息處理函數(shù)嵌入MFC的編程框架。MFC編程框架將在適當(dāng)?shù)臅r(shí)候、適當(dāng)?shù)牡胤絹?lái)調(diào)用程序的代碼。324.MFC的宏觀框架體系 如前所述,MFC實(shí)現(xiàn)了對(duì)應(yīng)用程序概念的封裝,把類(lèi)、類(lèi)的繼承、動(dòng)態(tài)約束、類(lèi)的關(guān)系和相互作用等封裝起來(lái)。這樣封裝的結(jié)果對(duì)程序員來(lái)說(shuō),是一套開(kāi)發(fā)模板(或者說(shuō)模式)。針對(duì)不同的應(yīng)用和目的,程序員采用不同的模板。例如,SDI應(yīng)用程序的模板,MDI應(yīng)用程序的模板,規(guī)則DLL應(yīng)用程序的模板,擴(kuò)展DLL應(yīng)用程序的模板,OLE/ACTIVEX應(yīng)用程序的模板,等等。33這些模板都采用了以文檔-視為中心的思想,每一個(gè)模板都包含一組特定的類(lèi)。典型的MDI應(yīng)用程序的

17、構(gòu)成將在下一節(jié)具體討論。為了支持對(duì)應(yīng)用程序概念的封裝,MFC內(nèi)部必須作大量的工作:例如,為了實(shí)現(xiàn)消息映射機(jī)制,MFC編程框架必須要保證首先得到消息,然后按既定的方法進(jìn)行處理。又如,為了實(shí)現(xiàn)對(duì)DLL編程的支持和多線程編程的支持,MFC內(nèi)部使用了特別的處理方法,使用模塊狀態(tài)、線程狀態(tài)等來(lái)管理一些重要信息。雖然,這些內(nèi)部處理對(duì)程序員來(lái)說(shuō)是透明的,但是,懂得和理解MFC內(nèi)部機(jī)制有助于寫(xiě)出功能靈活而強(qiáng)大的程序。34框架利用消息映像機(jī)制將發(fā)給對(duì)象的消息映射到類(lèi)方法上,使相應(yīng)的窗口或控件自動(dòng)地處理消息。二。MFC 的消息處理機(jī)制35消息映射的實(shí)現(xiàn)說(shuō)明:在處理消息的窗口類(lèi)中說(shuō)明消息響應(yīng)函數(shù):消息響應(yīng)函數(shù)原型D

18、ECLARE_MESSAGE_MAP( )實(shí)現(xiàn):在實(shí)現(xiàn)程序中說(shuō)明消息映射BEGIN_MESSAGE_MAP(派生類(lèi),基類(lèi)) 各種消息映射宏END_MESSAGE_MAP( )36消息映射項(xiàng)和處理方法消息響應(yīng)函數(shù)原型:afx_msg void ClassMethod( )消息映射宏:ON_MessageName(ID,ClassMethod)消息響應(yīng)函數(shù)的搜索路徑:自下而上,直到 CCmdTarget37 CProgram47App中的消息映射BEGIN_MESSAGE_MAP(CProgram47App, CWinApp)/AFX_MSG_MAP(CProgram47App)ON_COMMAN

19、D(ID_APP_ABOUT, OnAppAbout)/ ClassWizard將在此處添加/刪除成員,用戶不要編輯此處區(qū)域的代碼/AFX_MSG_MAP/ Standard document commandsON_COMMAND(ID_, CWinApp:On)ON_COMMAND(ID_, CWinApp:On)/ Standard print setup commandON_COMMAND(ID_, CWinApp:On)END_MESSAGE_MAP()38類(lèi)的消息可以被繼承,如果CProgram47App找不到與消息相匹配的消息處理函數(shù)時(shí),將轉(zhuǎn)去基類(lèi)CWinApp中尋找。如果在所有基

20、類(lèi)中都找不到消息處理函數(shù),則執(zhí)行默認(rèn)的消息處理函數(shù)。用戶可以用ClassWizard添加用戶需要的消息映射。但有時(shí)需要手工在此處加代碼。39三。窗口輸入消息處理輸入消息分類(lèi)鼠標(biāo)消息:用戶區(qū)與非用戶區(qū)鍵盤(pán)消息:系統(tǒng)鍵消息與非系統(tǒng)鍵消息40鼠標(biāo)輸入消息afx_msg void OnMouse_ (UINT nFlags,Cpoint point)afx_msg void On_Button_ (UINT nFlags,CPoint point)nFlags:標(biāo)識(shí)同時(shí)按下的虛擬鍵point:光標(biāo)所在的位置41鍵盤(pán)輸入消息afx_msg void On_(UINT nChar, UINT nRepCn

21、t,UINT nFlags)nChar:輸入字符的ASCIInRepCnt:重復(fù)擊鍵的次數(shù)nFlags:虛擬鍵碼.42例子應(yīng)用利用AppWizard創(chuàng)建應(yīng)用程序43CCmdTargetCWinThreadCWinAppCWndCFrameWndCObject主要負(fù)責(zé)初始化、運(yùn)行和結(jié)束應(yīng)用程序的執(zhí)行。負(fù)責(zé)管理操作數(shù)據(jù)及顯示,并接收用戶的輸入。結(jié)論:CFrameWnd派生類(lèi)的負(fù)擔(dān)過(guò)重。44文檔、視窗框架結(jié)構(gòu)主要思想:將原CFrameWnd派生類(lèi)的任務(wù)分配給文檔類(lèi)(CDocument)和視窗類(lèi)(CView)。文檔類(lèi)主要負(fù)責(zé)管理數(shù)據(jù);視窗類(lèi)主要負(fù)責(zé)顯示文檔內(nèi)容,接收用戶的輸入。45文檔、視窗框架涉及的

22、主要類(lèi)文檔類(lèi)(CDocument)管理程序操作的數(shù)據(jù)視窗(CView)顯示數(shù)據(jù)并接收用戶的輸入和編輯信息邊框窗口(CFrameWnd)管理視窗46文檔、視窗框架涉及的主要類(lèi)文檔模板(CSingleDocTemplate、CMultiDocTemplate)負(fù)責(zé)協(xié)調(diào)文檔、視窗和邊框窗口的工作。通常,一種特定的文檔模板創(chuàng)建并管理已打開(kāi)的同種類(lèi)型的所有文檔應(yīng)用程序類(lèi)(CWinApp)控制應(yīng)用程序的開(kāi)始運(yùn)行、初始化和結(jié)束47AppWizard、ClassWizard和資源編輯器AppWizard:創(chuàng)建MFC應(yīng)用程序ClassWizard:創(chuàng)建Windows消息和命令的處理函數(shù)創(chuàng)建類(lèi)成員變量創(chuàng)建和管理類(lèi)

23、資源編輯器:創(chuàng)建并編輯菜單 、對(duì)話框、定制控制框、加速鍵、位圖、圖標(biāo)、光標(biāo)、字符串和版本等資源48利用AppWizard編寫(xiě)程序的基本步驟1、利用AppWizard創(chuàng)建應(yīng)用程序框架2、若需要增加類(lèi)成員,利用ClassWizard添加3、若需要重載成員函數(shù),利用ClassWizard添加相應(yīng)的消息映射關(guān)系,并填寫(xiě)函數(shù)體4、若需要定義類(lèi),利用ClassWizard進(jìn)行定義49一個(gè)簡(jiǎn)單的應(yīng)用程序中的對(duì)象Application ObjectDocument TemplateDocumentToolbarStatus BarViewCFrameWnd50使用文檔/視窗結(jié)構(gòu)的意義將數(shù)據(jù)操作與數(shù)據(jù)顯示分開(kāi),

24、可以簡(jiǎn)化工作量;一組數(shù)據(jù)可以同時(shí)以不同的形式顯示在多個(gè)視窗中;類(lèi)庫(kù)提供了選擇文件、打開(kāi)文件和關(guān)閉文件的管理;支持打印預(yù)覽功能51視窗類(lèi)CObjectCCmdTargetCWndCViewCScrollViewCFormViewCEditViewCRecordView52視窗類(lèi)中的OnDraw成員函數(shù)每次當(dāng)視窗需要被重新繪制時(shí),應(yīng)用程序框架就要調(diào)用OnDraw函數(shù)。驅(qū)使程序調(diào)用OnDraw的兩個(gè)途徑:用戶改變窗口的尺寸;窗口恢復(fù)先前被遮蓋的部分;應(yīng)用程序改變了窗口數(shù)據(jù);程序中調(diào)用Invalidate(或者InvalidateRect),通知Windows調(diào)用OnDraw函數(shù)53實(shí)例48 窗口輸出文字與圖形通過(guò)實(shí)例48 實(shí)現(xiàn)在已有框架上添加代碼,在程序中顯示文字與圖形。程序?qū)崿F(xiàn)在應(yīng)用程序文檔窗口中輸出一行文字,并在窗口中心畫(huà)一個(gè)圓。首先,建立一個(gè)SDI應(yīng)用程序框架。54在CProgram48View:OnDraw()中添加代碼void CProgram48View:OnDraw(CDC* pDC)CProgram48Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論