界面編程基礎(chǔ)知識(shí)_第1頁(yè)
界面編程基礎(chǔ)知識(shí)_第2頁(yè)
界面編程基礎(chǔ)知識(shí)_第3頁(yè)
界面編程基礎(chǔ)知識(shí)_第4頁(yè)
界面編程基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩81頁(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、1第14章 標(biāo)準(zhǔn)庫(kù)Windows程序設(shè)計(jì)1、Windows編程的基本概念2、Windows中的數(shù)據(jù)類型3、消息驅(qū)動(dòng)與消息循環(huán)4、資源與資源文件313.2 界面編程人機(jī)界面HCI(human-computer interface)又稱用戶界面UI(user interface),是人與計(jì)算機(jī)之間傳遞、交換信息的媒介和對(duì)話接口,是計(jì)算機(jī)系統(tǒng)的重要組成部分。由于大多數(shù)應(yīng)用程序是以用戶界面為框架的,因此界面編程是軟件開(kāi)發(fā)的核心編程之一。413.2 界面編程用戶界面的設(shè)計(jì)與操作系統(tǒng)平臺(tái)有關(guān),操作系統(tǒng)界面一般有兩種:命令行界面CLI(command line user interface),例如DOS;圖

2、形用戶界面GUI(graphical user interface),例如Windows。513.2 界面編程早期的計(jì)算機(jī)普遍使用命令行界面,人機(jī)操作的特點(diǎn)是文本顯示和命令輸入。時(shí)至今日,命令行界面主要用在系統(tǒng)管理、遠(yuǎn)程維護(hù)、語(yǔ)言處理等系統(tǒng)軟件中,因而命令行界面也稱為控制臺(tái)界面,本書(shū)前面章節(jié)的程序都是命令行程序。圖形用戶界面是目前操作系統(tǒng)廣泛使用的人機(jī)界面。人機(jī)操作的特點(diǎn)是圖形顯示和交互圖形化,與命令行界面相比,圖形用戶界面對(duì)于使用者來(lái)說(shuō)在視覺(jué)上更易于接受,操作上更簡(jiǎn)便。本節(jié)介紹Windows系統(tǒng)下的圖形用戶界面編程技術(shù)。613.2.1 Windows編程的基本概念Windows應(yīng)用程序的一個(gè)

3、突出特點(diǎn)是它有一個(gè)美觀的圖形用戶界面窗口。窗口中可以包含標(biāo)題欄、菜單、工具條、狀態(tài)欄、滾動(dòng)條等,對(duì)話框中還包含類型不同的子控件,例如按鈕、復(fù)選框、列表框、組合框、編輯框等。窗口、對(duì)話框、圖形元素與鍵盤(pán)和鼠標(biāo)的配合,方便了用戶對(duì)應(yīng)用程序的操作。713.2.1 Windows編程的基本概念Windows應(yīng)用程序的界面編程,即是設(shè)計(jì)滿足要求的窗口程序。簡(jiǎn)單的Windows應(yīng)用程序只有一個(gè)窗口,而復(fù)雜的Windows應(yīng)用程序有多個(gè)窗口。Windows運(yùn)行機(jī)制的核心是動(dòng)態(tài)鏈接,應(yīng)用程序在運(yùn)行時(shí)使用動(dòng)態(tài)鏈接庫(kù),調(diào)用Windows提供的系統(tǒng)功能。Windows為程序員提供了幾千個(gè)函數(shù),稱為Windows A

4、PI函數(shù),用于實(shí)現(xiàn)用戶界面和顯示文字和圖形等。813.2.1 Windows編程的基本概念Windows編程有多種技術(shù),其中使用C語(yǔ)言和調(diào)用Windows API函數(shù)被稱作SDK編程方法,它今天依然是編寫(xiě)Windows程序的有效方法。自從出現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)方法以來(lái),Windows程序結(jié)構(gòu)和開(kāi)發(fā)工具發(fā)生了巨大的變化,例如MFC(Microsoft Foundation Classes)、Visual Basic、C#等。由于這些面向?qū)ο笄铱梢暬拈_(kāi)發(fā)工具能大幅提高Windows程序的開(kāi)發(fā)效率,因而得到了廣泛應(yīng)用。但無(wú)論如何,掌握SDK編程方法是必要的。913.2.1 Windows編程的基本概

5、念編寫(xiě)Windows程序,需要在程序源文件開(kāi)始位置包含頭文件:windows.h是主要的包含文件,它包含了其他Windows頭文件。這些頭文件定義了Windows的函數(shù)原型、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、宏定義和預(yù)定義符號(hào)常量,是Windows程序開(kāi)發(fā)文件中的重要組成部分。有興趣的讀者可以閱讀這些頭文件的細(xì)節(jié),對(duì)提高Windows編程水平有很大幫助。#include /Windows頭文件頭文件1013.2.1 Windows編程的基本概念Windows編程涉及大量API技術(shù)文檔信息,可以通過(guò)安裝MSDN得到聯(lián)機(jī)幫助。初學(xué)Windows編程的人面對(duì)Windows龐大的知識(shí)系統(tǒng)往往茫然不知所措,實(shí)際上它是

6、非常有規(guī)律的:1113.2.1 Windows編程的基本概念通過(guò)掌握Windows的基本數(shù)據(jù)定義和數(shù)據(jù)類型奠定編程基礎(chǔ);通過(guò)詳細(xì)分析Windows編程結(jié)構(gòu)了解其編程規(guī)律;通過(guò)構(gòu)造和使用通用的編程框架形成編程模板,盡快上手;通過(guò)研究API文檔的分類特點(diǎn)學(xué)會(huì)快速查閱需要的信息;了解、熟悉和模仿Windows的重要編程習(xí)慣,如命名時(shí)的“見(jiàn)其名知其意”。1213.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型Windows定義了若干實(shí)用的宏,例如:#define TRUE 1#define FALSE 0#define CALLBACK _stdcall#define WINAPI _stdcall#define API

7、ENTRY WINAPI#define FAR far#define CONST const#define LOWORD(x) (WORD)(x)#define HIWORD(x) (WORD)(DWORD)(x) 16) & 0 xFFFF)1313.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型其中_stdcall表示PASCAL調(diào)用約定,被調(diào)函數(shù)采用自右向左的順序參數(shù)入棧,函數(shù)自己在退出時(shí)清空堆棧;非_stdcall聲明為C調(diào)用約定,被調(diào)函數(shù)采用自右向左的順序參數(shù)入棧,由調(diào)用者清空堆棧;CALLBACK表示回調(diào)函數(shù),WINAPI表示W(wǎng)indows API函數(shù);far表示32位遠(yuǎn)指針;LOWORD(x)取x的

8、低16位值,HIWORD(x)取x的高16位值。1413.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型為了提高程序的可讀性和兼容性,Windows建立了完整的數(shù)據(jù)類型體系,稱為Win32應(yīng)用程序接口數(shù)據(jù)類型。常用的Windows數(shù)據(jù)類型見(jiàn)表13-3。1513.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型表13-3 常用的Windows數(shù)據(jù)類型Windows數(shù)據(jù)類型數(shù)據(jù)類型 C語(yǔ)言類型語(yǔ)言類型含義含義BOOLint邏輯類型(取值為邏輯類型(取值為T(mén)RUE或或FALSE)BYTEunsigned char字節(jié)型字節(jié)型CHARcharANSI字符字符COLORREFunsigned long顏色值,分紅、綠、藍(lán)(顏色值,分紅、綠、藍(lán)(

9、RGB)字節(jié))字節(jié)DWORDunsigned long無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型INTint32位整型位整型LONGlong32位長(zhǎng)整型位長(zhǎng)整型LPARAMlongLONG型消息參數(shù)型消息參數(shù)LPCSTRCONST CHAR *只讀型只讀型8位位ANSI字符串的指針字符串的指針LPCTSTRLPCWSTR/LPCSTRLPCWSTR或或LPCSTRLPCWSTRCONST WCHAR *只讀型只讀型16位位Unicode字符串的指針字符串的指針1613.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型續(xù)表13-3 常用的Windows數(shù)據(jù)類型Windows數(shù)據(jù)類型數(shù)據(jù)類型 C語(yǔ)言類型語(yǔ)言類型含義含義LPDWORDDW

10、ORD *DWORD的指針的指針LPSTRCHAR *8位位ANSI字符串的指針字符串的指針LPTSTRLPWSTR/LPSTRLPWSTR或或LPSTRLPWSTRWCHAR *16位位ANSI字符串的指針字符串的指針LPVOIDvoid *void的指針的指針LRESULTlong消息處理結(jié)果值消息處理結(jié)果值TCHARWCHAR/CHARWCHAR或或CHARUINTunsigned int無(wú)符號(hào)無(wú)符號(hào)INTVOIDvoidvoidWCHARwchar_t16位位Unicode字符字符WORDunsigned short16位無(wú)符號(hào)整型位無(wú)符號(hào)整型1713.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型續(xù)表1

11、3-3 常用的Windows數(shù)據(jù)類型Windows數(shù)據(jù)類型數(shù)據(jù)類型 C語(yǔ)言類型語(yǔ)言類型含義含義WPARAMunsigned intWORD型消息參數(shù)型消息參數(shù)1813.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型在Windows應(yīng)用程序中,會(huì)有許多諸如窗口、按鈕、滾動(dòng)條、設(shè)備、控件或者文件等復(fù)雜數(shù)據(jù)結(jié)構(gòu)的不同對(duì)象和同類對(duì)象中的不同實(shí)例。為了在程序中區(qū)分和使用它們,需要對(duì)它們進(jìn)行標(biāo)識(shí)。有別于普通變量的標(biāo)識(shí),Windows將這些對(duì)象的標(biāo)識(shí)稱為句柄(handle)。句柄是Windows編程的基礎(chǔ),一個(gè)句柄能夠唯一區(qū)別Windows正在使用的對(duì)象或?qū)嵗?。?yīng)用程序幾乎總是通過(guò)調(diào)用一個(gè)API函數(shù)來(lái)獲得一個(gè)句柄,之后其他的A

12、PI函數(shù)就可以使用該句柄,以引用相應(yīng)的對(duì)象的信息。常用的Windows句柄類型見(jiàn)表13-4。1913.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型表13-4 常用的Windows句柄類型Windows句柄類型句柄類型 C語(yǔ)言類型語(yǔ)言類型含義含義HANDLEvoid *通用對(duì)象句柄通用對(duì)象句柄HACCELHACCEL_結(jié)構(gòu)體指針結(jié)構(gòu)體指針快捷鍵列表句柄快捷鍵列表句柄HBITMAPHBITMAP_結(jié)構(gòu)體指針結(jié)構(gòu)體指針位圖句柄位圖句柄HBRUSHHBRUSH_結(jié)構(gòu)體指針結(jié)構(gòu)體指針畫(huà)刷句柄畫(huà)刷句柄HCURSORHICON_結(jié)構(gòu)體指針結(jié)構(gòu)體指針光標(biāo)句柄光標(biāo)句柄HDCHDC_結(jié)構(gòu)體指針結(jié)構(gòu)體指針設(shè)備場(chǎng)境(設(shè)備場(chǎng)境(DC)句

13、柄)句柄HFILEint文件句柄文件句柄.HFONTHFONT_結(jié)構(gòu)體指針結(jié)構(gòu)體指針字體句柄字體句柄HGDIOBJvoid near *GDI對(duì)象句柄對(duì)象句柄HGLOBALvoid *全局內(nèi)存塊句柄全局內(nèi)存塊句柄2013.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型續(xù)表13-4 常用的Windows句柄類型Windows句柄類句柄類型型C語(yǔ)言類型語(yǔ)言類型含義含義HICONHICON_結(jié)構(gòu)體指針結(jié)構(gòu)體指針圖標(biāo)句柄圖標(biāo)句柄HINSTANCEHINSTANCE_結(jié)構(gòu)體指針結(jié)構(gòu)體指針實(shí)例句柄實(shí)例句柄HMENUHMENU_結(jié)構(gòu)體指針結(jié)構(gòu)體指針菜單句柄菜單句柄HMODULEHINSTANCE_結(jié)構(gòu)體指針結(jié)構(gòu)體指針模塊句柄。

14、模塊句柄。HPALETTEHPALETTE_結(jié)構(gòu)體指針結(jié)構(gòu)體指針調(diào)色板句柄調(diào)色板句柄HPENHPEN_結(jié)構(gòu)體指針結(jié)構(gòu)體指針畫(huà)筆句柄畫(huà)筆句柄HRGNHRGN_結(jié)構(gòu)體指針結(jié)構(gòu)體指針區(qū)域句柄區(qū)域句柄HRSRCHRSRC_結(jié)構(gòu)體指針結(jié)構(gòu)體指針資源句柄資源句柄HWNDHWND_結(jié)構(gòu)體指針結(jié)構(gòu)體指針窗口句柄窗口句柄2113.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型Windows還定義了一些有用的結(jié)構(gòu)體及結(jié)構(gòu)體指針類型,例如點(diǎn)的坐標(biāo):typedef struct tagPOINT LONG x; LONG y; POINT, *PPOINT, FAR *LPPOINT;2213.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型寬度和高度:ty

15、pedef struct tagSIZE LONG cx; LONG cy; SIZE, *PSIZE, *LPSIZE;2313.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型矩形框:typedef struct tagRECT LONG left; LONG top; LONG right; LONG bottom; RECT, *PRECT, FAR *LPRECT;typedef const RECT FAR* LPCRECT;2413.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型一般地,Windows自定義數(shù)據(jù)類型、句柄類型和宏定義的關(guān)鍵字都是大寫(xiě)。編寫(xiě)Windows應(yīng)用程序時(shí),程序員偏愛(ài)使用“匈牙利表示法”的變量命名約

16、定,即變量名以一個(gè)或多個(gè)小寫(xiě)字母為前綴,這些字母表示變量的數(shù)據(jù)類型。表13-5列出了在本書(shū)中經(jīng)常使用的變量前綴。2513.2.2 數(shù)據(jù)定義與數(shù)據(jù)類型表13-5 常用變量前綴前綴前綴數(shù)據(jù)類型數(shù)據(jù)類型前綴前綴數(shù)據(jù)類型數(shù)據(jù)類型前綴前綴數(shù)據(jù)類型數(shù)據(jù)類型ccharnshortiintx,yx和和y坐標(biāo)坐標(biāo)cx,cyx長(zhǎng)度和長(zhǎng)度和y長(zhǎng)度長(zhǎng)度bBOOLfint,代表,代表flagwWORDlLONGdwDWORDfnfunction函數(shù)函數(shù)sstringsz以以0結(jié)尾的字符串結(jié)尾的字符串 h句柄句柄p,lp指針指針例如定義C語(yǔ)言字符串,在Windows程序中會(huì)這樣寫(xiě):char szMessage200;26

17、13.2.3 消息與消息循環(huán)1事件與消息命令行界面程序是過(guò)程式的,即程序按順序調(diào)用函數(shù)直至運(yùn)行結(jié)束。圖形用戶界面程序是事件驅(qū)動(dòng)式的,即程序啟動(dòng)并創(chuàng)建程序窗口之后,隨即進(jìn)入一個(gè)等待狀態(tài)(稱為消息循環(huán)),直到接收到一個(gè)事件(稱為消息),例如鍵盤(pán)輸入、鼠標(biāo)單擊等,程序脫離等待狀態(tài)對(duì)事件進(jìn)行相應(yīng)的處理(稱為消息處理或響應(yīng)消息),處理完成后又進(jìn)入等待狀態(tài)。2713.2.3 消息與消息循環(huán)為了描述事件的各種信息,Windows定義了一個(gè)消息(message)類型如下:typedef struct tagMSG HWND hwnd; /產(chǎn)生消息的窗口句柄產(chǎn)生消息的窗口句柄 UINT message; /消息

18、的標(biāo)識(shí)碼消息的標(biāo)識(shí)碼 WPARAM wParam; /消息附加信息消息附加信息1 LPARAM lParam; /消息附加信息消息附加信息2 DWORD time; /消息進(jìn)入消息隊(duì)列的時(shí)刻消息進(jìn)入消息隊(duì)列的時(shí)刻 POINT pt; /發(fā)送該消息時(shí)光標(biāo)的屏幕位置發(fā)送該消息時(shí)光標(biāo)的屏幕位置 MSG, *PMSG, FAR *LPMSG;2813.2.3 消息與消息循環(huán)當(dāng)Windows發(fā)生某個(gè)事件時(shí),Windows系統(tǒng)會(huì)把該事件的相關(guān)信息填寫(xiě)到MSG結(jié)構(gòu)的各個(gè)成員中,并設(shè)法把這個(gè)消息發(fā)送到應(yīng)用程序中。應(yīng)用程序根據(jù)消息中的窗口句柄hwnd和消息識(shí)別碼message來(lái)確定由哪個(gè)窗口中的哪一段消息處理代

19、碼響應(yīng)這個(gè)消息。Windows系統(tǒng)預(yù)先定義了絕大多數(shù)的消息,例如WM_CREATE、WM_DESTROY等。2913.2.3 消息與消息循環(huán)2消息循環(huán)處理機(jī)制Windows系統(tǒng)為每個(gè)應(yīng)用程序都建立了一個(gè)消息隊(duì)列(message queues)。在程序運(yùn)行過(guò)程中如果發(fā)生了一個(gè)事件,Windows會(huì)把這個(gè)事件所對(duì)應(yīng)的消息送入消息隊(duì)列等待使用。應(yīng)用程序通過(guò)GetMessage函數(shù)從消息隊(duì)列中獲取消息,并利用GetMessage函數(shù)的返回值形成一個(gè)消息循環(huán),從而可以不斷從消息隊(duì)列中獲取消息。3013.2.3 消息與消息循環(huán) Windows系統(tǒng)會(huì)根據(jù)消息中的hwnd找到應(yīng)該接收消息的程序窗口,并根據(jù)窗口

20、句柄找到該窗口的窗口過(guò)程WndProc(window procedure),以消息作為參數(shù)調(diào)用該函數(shù)。在WndProc函數(shù)中,根據(jù)消息標(biāo)識(shí)message執(zhí)行該消息所對(duì)應(yīng)的代碼,對(duì)消息進(jìn)行處理。處理完成后,只要該消息不是終止應(yīng)用程序消息,就會(huì)立即返回到消息循環(huán),以等待獲取下一個(gè)消息。Windows應(yīng)用程序就是這樣周而復(fù)始進(jìn)行消息循環(huán),直到發(fā)出終止應(yīng)用程序的WM_QUIT消息為止,例如單擊窗口的關(guān)閉按鈕。3113.2.3 消息與消息循環(huán)從上述消息處理機(jī)制可以看到,Windows程序分為兩部分:一個(gè)是以消息循環(huán)為主的獲取和發(fā)送消息,另一個(gè)是專門(mén)處理消息的WndProc函數(shù)。Windows消息處理流程

21、如圖所示。由于Windows是多任務(wù)操作系統(tǒng),因此Windows會(huì)根據(jù)實(shí)際的消息性質(zhì)來(lái)調(diào)度消息究竟發(fā)送到哪個(gè)程序進(jìn)程的哪個(gè)窗口上。3213.2.3 消息與消息循環(huán)圖13.6 Windows消息處理流程3313.2.3 消息與消息循環(huán)3消息源Windows程序的消息來(lái)源有四種。(1)硬件事件:包括鍵盤(pán)和鼠標(biāo)的輸入。這類消息首先放在系統(tǒng)消息隊(duì)列中,然后由Windows將它們送入應(yīng)用程序消息隊(duì)列中,由應(yīng)用程序來(lái)處理消息。3413.2.3 消息與消息循環(huán)(2)控件消息:用來(lái)與Windows的控件對(duì)象,例如列表框、按鈕、復(fù)選框等進(jìn)行雙向通信,當(dāng)用戶在列表框中改動(dòng)當(dāng)前選擇或改變了復(fù)選框的狀態(tài)時(shí)發(fā)出此類消息

22、。這類消息一般不經(jīng)過(guò)應(yīng)用程序消息隊(duì)列,而是直接發(fā)送到控件對(duì)象上去。(3)系統(tǒng)消息:對(duì)程序化的事件或系統(tǒng)時(shí)鐘中斷作出反應(yīng)。一些系統(tǒng)消息,象DDE消息(動(dòng)態(tài)數(shù)據(jù)交換消息)要通過(guò)Windows的系統(tǒng)消息隊(duì)列,而有的則不通過(guò)系統(tǒng)消息隊(duì)列而直接送入應(yīng)用程序消息隊(duì)列,例如創(chuàng)建窗口WM_CREATE消息。3513.2.3 消息與消息循環(huán)(4)用戶消息:程序員使用RegisterWindowMessage函數(shù)自定義并在應(yīng)用程序中主動(dòng)發(fā)出的消息,一般由應(yīng)用程序的某一部分內(nèi)部處理。3613.2.3 消息與消息循環(huán)圖13.7 Windows消息源3713.2.3 消息與消息循環(huán)進(jìn)程發(fā)送消息有兩個(gè)API函數(shù):Post

23、Message和SendMessage。PostMessage函數(shù)將消息存放在消息隊(duì)列中,該消息不一定立刻處理;SendMessage直接發(fā)送消息到消息循環(huán)中并及時(shí)處理。3813.2.4 資源與資源文件在Windows應(yīng)用程序中有一些特殊數(shù)據(jù),例如用戶界面上的菜單、圖標(biāo)、位圖等。這些數(shù)據(jù)具有一定的獨(dú)立性,程序不是在任何時(shí)候都要用到它們;它們存放在可執(zhí)行文件中,能夠避免程序擁有大量分散文件。Windows將這些數(shù)據(jù)稱為資源。3913.2.4 資源與資源文件簡(jiǎn)單地說(shuō),資源就是一種可供Windows應(yīng)用程序使用,可單獨(dú)編輯并動(dòng)態(tài)加載的數(shù)據(jù)。所謂單獨(dú)編輯是指利用軟件工具可以直接編輯可執(zhí)行文件里面的資源

24、數(shù)據(jù),無(wú)需重新編譯程序就能夠修改程序用到的諸如菜單之類的內(nèi)容;所謂動(dòng)態(tài)加載是指資源不像程序中的靜態(tài)數(shù)據(jù)(如全局變量)那樣在程序剛開(kāi)始運(yùn)行即裝入到內(nèi)存中,而是在必需時(shí)才加載到內(nèi)存中。4013.2.4 資源與資源文件Windows資源有菜單、圖標(biāo)、位圖、光標(biāo)、對(duì)話框、工具欄、快捷鍵、字符串、自定義資源等類型。資源是由RC資源描述文件定義的,經(jīng)編譯后轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)存儲(chǔ)在可執(zhí)行文件中。應(yīng)用程序通過(guò)API函數(shù)將其動(dòng)態(tài)加載,通過(guò)資源標(biāo)識(shí)區(qū)分不同的資源。4113.2.4 資源與資源文件1資源頭文件為了區(qū)分不同的資源,一個(gè)應(yīng)用程序中相同類型的資源必須有唯一的標(biāo)識(shí)。這些標(biāo)識(shí)實(shí)際上是符號(hào)常量,其定義形式為:例如

25、1000可以同時(shí)作為菜單、圖標(biāo)的資源標(biāo)識(shí)值,但兩個(gè)菜單的資源標(biāo)識(shí)值不能相同。#define 資源標(biāo)識(shí)符資源標(biāo)識(shí)符 資源標(biāo)識(shí)值資源標(biāo)識(shí)值4213.2.4 資源與資源文件由于資源標(biāo)識(shí)既出現(xiàn)在資源描述文件中(定義資源必須有標(biāo)識(shí)),又出現(xiàn)在程序文件中(加載資源必須指明標(biāo)識(shí)),因此在程序的工程項(xiàng)目中一般將所有資源標(biāo)識(shí)定義在資源頭文件resource.h中,凡是用到資源標(biāo)識(shí)的地方都包含這個(gè)頭文件。4313.2.4 資源與資源文件表13-6 資源標(biāo)識(shí)符前綴標(biāo)識(shí)前綴標(biāo)識(shí)前綴用途用途標(biāo)識(shí)前綴標(biāo)識(shí)前綴用途用途IDM_菜單命令菜單命令I(lǐng)DB_位圖位圖ID_或或IDC_ 對(duì)話框中的控件對(duì)話框中的控件IDC_光標(biāo)光標(biāo)I

26、DD_對(duì)話框?qū)υ捒騃DI_圖標(biāo)圖標(biāo)IDR_菜單、快捷鍵、工具欄、自菜單、快捷鍵、工具欄、自定義資源定義資源IDS_字符串字符串為提高程序可讀性,Windows編程有一套資源標(biāo)識(shí)符命名規(guī)則,表13-6列出了常用的資源標(biāo)識(shí)符前綴。4413.2.4 資源與資源文件例如:#define IDI_APP 100 /主窗口圖標(biāo)資源標(biāo)識(shí)符主窗口圖標(biāo)資源標(biāo)識(shí)符#define IDR_APP 102 /主窗口菜單快捷鍵資源標(biāo)識(shí)符主窗口菜單快捷鍵資源標(biāo)識(shí)符#define IDD_APP 102 /主對(duì)話框資源標(biāo)識(shí)符主對(duì)話框資源標(biāo)識(shí)符#define IDS_APP_TITLE 1000 /應(yīng)用程序標(biāo)題資源標(biāo)識(shí)符應(yīng)用

27、程序標(biāo)題資源標(biāo)識(shí)符#define IDC_BUTTON1 1201 /按鈕資源標(biāo)識(shí)符按鈕資源標(biāo)識(shí)符#define IDB_CARPICTUE 1202 /位圖資源標(biāo)識(shí)符位圖資源標(biāo)識(shí)符4513.2.4 資源與資源文件2資源描述文件資源描述文件定義了Windows應(yīng)用程序中的各種資源,其擴(kuò)展名為.rc,文件名通常與程序的工程項(xiàng)目名稱相同。對(duì)于位圖、圖標(biāo)、光標(biāo)等資源,資源描述文件只是說(shuō)明它們的標(biāo)識(shí)和存儲(chǔ)路徑,其圖形數(shù)據(jù)是以文件形式存放在項(xiàng)目的res子文件夾下。4613.2.4 資源與資源文件可以將資源描述文件添加到項(xiàng)目中隨程序一起編譯,資源描述文件會(huì)生成二進(jìn)制形式的資源文件,其擴(kuò)展名為.res。連接

28、器將程序目標(biāo)代碼文件.obj、庫(kù)文件.lib(或.a)、資源文件.res連接起來(lái)產(chǎn)生可執(zhí)行文件.exe。如圖給出了Windows應(yīng)用程序工程項(xiàng)目中各種文件之間的關(guān)系。4713.2.4 資源與資源文件圖13.8 Windows應(yīng)用程序工程項(xiàng)目框架4813.2.4 資源與資源文件3資源可視化設(shè)計(jì)VC可以對(duì)資源進(jìn)行可視化編輯。所謂可視化設(shè)計(jì)是指用“所見(jiàn)即所得”方式進(jìn)行資源定義,例如用鼠標(biāo)拖動(dòng)布置對(duì)話框上的控件等,如圖所示是一個(gè)對(duì)話框資源的可視化編輯界面。由于資源大多數(shù)是圖形元素,因此可視化設(shè)計(jì)能夠快速建立資源描述文件。4913.2.4 資源與資源文件圖13.9 對(duì)話框可視化編輯5013.2.4 資源

29、與資源文件4資源描述語(yǔ)句資源描述文件是一個(gè)文本文件,通過(guò)編寫(xiě)資源描述語(yǔ)句在文件中定義資源。(1)菜單資源一個(gè)菜單資源一般由菜單、彈出菜單和菜單項(xiàng)三個(gè)層次組成,其定義語(yǔ)句形式為:菜單標(biāo)識(shí)符菜單標(biāo)識(shí)符 MENU 加載特性選項(xiàng)加載特性選項(xiàng)BEGIN 彈出菜單定義語(yǔ)句.END5113.2.4 資源與資源文件MENU語(yǔ)句定義了一個(gè)菜單資源的內(nèi)容。菜單資源是一個(gè)信息集合,這些信息定義應(yīng)用程序的菜單的表現(xiàn)形式及其功能。MENU語(yǔ)句定義菜單時(shí),可以使用表13-7所列的加載特性選項(xiàng)值來(lái)聲明菜單被載入時(shí)的特性。5213.2.4 資源與資源文件表13-7 資源加載特性選項(xiàng)加載特性選項(xiàng)加載特性選項(xiàng)說(shuō)明說(shuō)明DISCAR

30、DABLE如果資源不再需要可被放棄。如果資源不再需要可被放棄。FIXED資源保留在一個(gè)固定的內(nèi)存位置。資源保留在一個(gè)固定的內(nèi)存位置。MOVEABLE資源在必要時(shí)可被移動(dòng)以便節(jié)省內(nèi)存。資源在必要時(shí)可被移動(dòng)以便節(jié)省內(nèi)存。LOADONCALL資源在調(diào)用時(shí)被加載(默認(rèn)選項(xiàng))。資源在調(diào)用時(shí)被加載(默認(rèn)選項(xiàng))。PRELOAD資源被立即加載。資源被立即加載。5313.2.4 資源與資源文件彈出菜單定義語(yǔ)句形式為:POPUP語(yǔ)句標(biāo)記一個(gè)彈出菜單定義的開(kāi)始。彈出菜單(也稱下拉菜單)是一個(gè)特殊的菜單項(xiàng),當(dāng)它被選中時(shí),會(huì)顯示其子菜單項(xiàng)。表13-8的菜單選項(xiàng)指定了菜單項(xiàng)的外觀。POPUP 彈出菜單標(biāo)題彈出菜單標(biāo)題 菜

31、單選項(xiàng)菜單選項(xiàng)BEGIN 菜單項(xiàng)定義語(yǔ)句.END5413.2.4 資源與資源文件表13-8 菜單選項(xiàng)菜單選項(xiàng)菜單選項(xiàng)說(shuō)明說(shuō)明CHECKED菜單項(xiàng)有一個(gè)選中標(biāo)記,頂層菜單此選項(xiàng)無(wú)效。菜單項(xiàng)有一個(gè)選中標(biāo)記,頂層菜單此選項(xiàng)無(wú)效。GRAYED菜單項(xiàng)不可用,其文字顏色為灰。菜單項(xiàng)不可用,其文字顏色為灰。INACTIVE菜單項(xiàng)名正常顯示但不可選。菜單項(xiàng)名正常顯示但不可選。MENUBARBREAK將菜單新的一列與舊的一列用一垂直線分開(kāi)。將菜單新的一列與舊的一列用一垂直線分開(kāi)。MENUBREAK將菜單項(xiàng)放在新的一行?;?qū)棾霾藛畏旁谛碌囊涣校瑢⒉藛雾?xiàng)放在新的一行?;?qū)棾霾藛畏旁谛碌囊涣?,列之間沒(méi)有分割線。列

32、之間沒(méi)有分割線。5513.2.4 資源與資源文件菜單項(xiàng)定義語(yǔ)句形式為:其中菜單項(xiàng)名稱字符串可以包含轉(zhuǎn)義字符t和a。t字符使菜單文字按列對(duì)齊,a字符使所有后面的文字與菜單欄或彈出菜單右對(duì)齊。在字符前如果有&,則該字符將有一條下劃線且作為菜單快捷字母鍵。菜單項(xiàng)標(biāo)識(shí)符是一個(gè)整數(shù)值,當(dāng)該菜單項(xiàng)被單擊時(shí),這個(gè)菜單項(xiàng)標(biāo)識(shí)值將隨消息WM_COMMAND傳遞到窗口過(guò)程WndProc中。MENUITEM 菜單項(xiàng)名稱菜單項(xiàng)名稱,菜單項(xiàng)標(biāo)識(shí)符菜單項(xiàng)標(biāo)識(shí)符 ,菜單選項(xiàng)菜單選項(xiàng)5613.2.4 資源與資源文件特殊菜單項(xiàng)“MENUITEM SEPARATOR”的作用是在菜單上形成一條橫向的分割線,便于對(duì)菜單項(xiàng)進(jìn)行分類。例

33、如設(shè)計(jì)一個(gè)如圖所示的菜單界面。5713.2.4 資源與資源文件其菜單資源定義為:IDR_APP MENU DISCARDABLE /主窗口菜單資源主窗口菜單資源BEGIN POPUP 文件文件(&F) BEGIN MENUITEM 新建新建(&N)tCtrl+N, IDM_FILE_NEW MENUITEM 打開(kāi)打開(kāi)(&O).tCtrl+O, IDM_FILE_OPEN MENUITEM SEPARATOR MENUITEM 退出退出(&X), IDM_EXIT END POPUP 幫助幫助(&H) BEGIN MENUITEM 軟件簡(jiǎn)介軟件簡(jiǎn)介(&A)., IDM_ABOUT ENDEND5

34、813.2.4 資源與資源文件(2)對(duì)話框資源對(duì)話框資源定義語(yǔ)句形式為:DIALOG語(yǔ)句定義了一個(gè)對(duì)話框模板。加載特性選項(xiàng)可以使用表13-7的值,x、y、width、height表示對(duì)話框左上角在屏幕上的位置和對(duì)話框的寬度、高度值,對(duì)話框風(fēng)格語(yǔ)句定義對(duì)話框的外觀風(fēng)格,參見(jiàn)表13-9。對(duì)話框資源標(biāo)識(shí)符對(duì)話框資源標(biāo)識(shí)符 DIALOG 加載特性選項(xiàng)加載特性選項(xiàng) x, y, width, height對(duì)話框風(fēng)格語(yǔ)句.BEGIN 控件語(yǔ)句.END5913.2.4 資源與資源文件表13-9 對(duì)話框風(fēng)格語(yǔ)句對(duì)話框風(fēng)格語(yǔ)句對(duì)話框風(fēng)格語(yǔ)句說(shuō)明說(shuō)明STYLE styles指定對(duì)話框的窗口風(fēng)格。指定對(duì)話框的窗口風(fēng)格

35、。styles可以使用可以使用“|”位或運(yùn)算組位或運(yùn)算組合多種預(yù)定義值。合多種預(yù)定義值。EXSTYLE=ext-styles指定對(duì)話框的擴(kuò)展窗口風(fēng)格。指定對(duì)話框的擴(kuò)展窗口風(fēng)格。ext-styles可以使用可以使用“|”位位或運(yùn)算組合多種預(yù)定義值?;蜻\(yùn)算組合多種預(yù)定義值。CAPTION text指定對(duì)話框標(biāo)題,指定對(duì)話框標(biāo)題,text為字符串。為字符串。FONT pointsize, typeface指定對(duì)話框中文字的大小指定對(duì)話框中文字的大小pointsize和字體名稱和字體名稱typeface,字體名稱為字符串。字體名稱為字符串。CLASS class指定對(duì)話框的窗口類,如果沒(méi)有此語(yǔ)句則使用

36、指定對(duì)話框的窗口類,如果沒(méi)有此語(yǔ)句則使用Windows標(biāo)準(zhǔn)對(duì)話框類。標(biāo)準(zhǔn)對(duì)話框類。MENU menuname 指定對(duì)話框的菜單資源標(biāo)識(shí),如果沒(méi)有此語(yǔ)句則對(duì)話框指定對(duì)話框的菜單資源標(biāo)識(shí),如果沒(méi)有此語(yǔ)句則對(duì)話框沒(méi)有菜單。沒(méi)有菜單。6013.2.4 資源與資源文件控件語(yǔ)句定義在對(duì)話框上出現(xiàn)的一個(gè)或多個(gè)控件,包含控件文本(text)、控件在對(duì)話框上的位置(x、y)、控件寬度(width)和高度(height)、控件風(fēng)格(style)等屬性。DIALOG語(yǔ)句可以使用的控件見(jiàn)表13-10。6113.2.4 資源與資源文件表13-10 對(duì)話框控件控件控件控件語(yǔ)句控件語(yǔ)句默認(rèn)按鈕默認(rèn)按鈕DEFPUSHBUTT

37、ON text,id,x,y,width,height ,style按鈕按鈕PUSHBUTTON text,id,x,y,width,height ,style單選按鈕單選按鈕RADIOBUTTON text,id,x,y,width,height ,style復(fù)選框復(fù)選框CHECKBOX text,id,x,y,width,height ,style矩形框矩形框GROUPBOX text,id,x,y,width,height ,style列表框列表框LISTBOX id,x,y,width,height ,style組合框組合框COMBOBOX id,x,y,width,height ,s

38、tyle編輯框編輯框EDITTEXT id,x,y,width,height ,style文字居中控件文字居中控件CTEXT text,id,x,y,width,height ,style文字左對(duì)齊控件文字左對(duì)齊控件LTEXT text,id,x,y,width,height ,style文字右對(duì)齊控件文字右對(duì)齊控件RTEXT text,id,x,y,width,height ,style6213.2.4 資源與資源文件續(xù)表13-10 對(duì)話框控件控件控件控件語(yǔ)句控件語(yǔ)句卷滾條卷滾條SCROLLBAR id,x,y,width,height ,style指定類控件指定類控件CONTROL tex

39、t,id,class,style,x,y,width,height ,extended-style預(yù)定義的預(yù)定義的class有有BUTTON、COMBOBOX、EDIT、LISTBOX、SCROLLBAR、STATIC6313.2.4 資源與資源文件圖13.11 對(duì)話框界面例如設(shè)計(jì)一個(gè)如圖所示的對(duì)話框界面。6413.2.4 資源與資源文件其對(duì)話框資源定義為:IDD_APP DIALOG 0, 0, 305, 102STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENUCAPTION 對(duì)話框?qū)υ捒騀ONT 9, 宋體宋體BEGI

40、N DEFPUSHBUTTON 默認(rèn)按鈕默認(rèn)按鈕,IDC_BUTTON1,158,73,50,17 LTEXT 編輯框編輯框,IDC_STATIC,7,7,133,9 EDITTEXT IDC_EDIT1,7,21,133,14 GROUPBOX 矩形框矩形框,IDC_STATIC,229,7,64,43 PUSHBUTTON 按鈕按鈕,IDC_BUTTON2,220,73,50,17 CHECKBOX 復(fù)選框復(fù)選框,IDC_CHECK1,234,21,56,10 RADIOBUTTON 單選按鈕單選按鈕,IDC_RADIO1,234,35,48,10 COMBOBOX IDC_COMBO1,

41、149,21,72,30,CBS_DROPDOWN|CBS_SORT LISTBOX IDC_LIST1,7,56,133,33 LTEXT 列表框列表框,IDC_STATIC,7,43,133,9 LTEXT 組合框組合框,IDC_STATIC,149,7,72,9END 6513.2.4 資源與資源文件(3)快捷鍵資源快捷鍵總是和菜單項(xiàng)配合使用的。在資源描述文件中,用快捷鍵表來(lái)描述菜單項(xiàng)的快捷鍵,其語(yǔ)句形式為:快捷鍵標(biāo)識(shí)符快捷鍵標(biāo)識(shí)符 ACCELERATORS 加載特性選項(xiàng)加載特性選項(xiàng)BEGIN event,id,typeoption .END6613.2.4 資源與資源文件快捷鍵表為應(yīng)用

42、程序定義了一個(gè)或多個(gè)快捷鍵,通過(guò)TranslateAccelerator函數(shù)可以將消息隊(duì)列中快捷鍵消息翻譯成WM_COMMAND或WM_SYSCOMMAND消息。當(dāng)按下快捷鍵時(shí),程序執(zhí)行快捷鍵命令標(biāo)識(shí)對(duì)應(yīng)的消息處理,使用戶能夠快速執(zhí)行一個(gè)任務(wù)。event參數(shù)指定用作快捷鍵的按鍵,可以是表13-11中的任意一個(gè)值。6713.2.4 資源與資源文件表13-11 快捷鍵資源按鍵類型按鍵值按鍵值含義含義字符字符單個(gè)單個(gè)ASCII字符。字符前面可以加上插入符字符。字符前面可以加上插入符,表示該字符是一,表示該字符是一個(gè)控制字符。個(gè)控制字符。整數(shù)值整數(shù)值數(shù)值對(duì)應(yīng)的數(shù)值對(duì)應(yīng)的ASCII字符。字符。type參

43、數(shù)必須是參數(shù)必須是ASCII。虛鍵值虛鍵值虛鍵值是虛鍵值是Windows預(yù)先定義好的整數(shù)值,為字母數(shù)字的虛鍵可預(yù)先定義好的整數(shù)值,為字母數(shù)字的虛鍵可以用雙引號(hào)加大寫(xiě)字母或數(shù)字來(lái)表示。以用雙引號(hào)加大寫(xiě)字母或數(shù)字來(lái)表示。type參數(shù)必須是參數(shù)必須是VIRTKEY。6813.2.4 資源與資源文件id參數(shù)指定一個(gè)快捷鍵命令標(biāo)識(shí),該值用來(lái)選擇消息處理任務(wù),option參數(shù)指定快捷鍵選項(xiàng),可以是表13-12中的一個(gè)值或使用位或“|”運(yùn)算的多個(gè)值組合。6913.2.4 資源與資源文件表13-12 快捷鍵選項(xiàng)NOINVERT 表示當(dāng)加速鍵被用到時(shí)所有頂層菜單項(xiàng)都不高亮。表示當(dāng)加速鍵被用到時(shí)所有頂層菜單項(xiàng)都不

44、高亮。ALT使加速鍵只能在同時(shí)按下使加速鍵只能在同時(shí)按下ALT鍵時(shí)才被激活。鍵時(shí)才被激活。SHIFT使加速鍵只能在同時(shí)按下使加速鍵只能在同時(shí)按下SHIFT鍵時(shí)才被激活。鍵時(shí)才被激活。CONTROL使加速鍵只能在同時(shí)按下使加速鍵只能在同時(shí)按下CTRL鍵時(shí)才被激活。與控制字符效果鍵時(shí)才被激活。與控制字符效果相同。相同。7013.2.4 資源與資源文件如下是一個(gè)快捷鍵表資源定義示例。IDR_APP ACCELERATORS MOVEABLE PURE /主窗口快捷鍵資源主窗口快捷鍵資源BEGIN N,IDM_FILE_NEW /按按Ctrl+N執(zhí)行執(zhí)行IDM_FILE_NEW “O,IDM_FILE

45、_OPEN,VIRTKEY,CONTROL /按按Ctrl+O執(zhí)行執(zhí)行IDM_FILE_OPEN X,IDM_EXIT,VIRTKEY,ALT /按按ALT+X執(zhí)行執(zhí)行IDM_EXIT VK_F1,IDM_ABOUT,VIRTKEY /按按F1執(zhí)行執(zhí)行IDM_ABOUTEND7113.2.4 資源與資源文件(4)位圖、圖標(biāo)、光標(biāo)和字體資源位圖資源描述語(yǔ)句形式為:位圖資源標(biāo)識(shí)符位圖資源標(biāo)識(shí)符 BITMAP 加載特性選項(xiàng)加載特性選項(xiàng) filename7213.2.4 資源與資源文件例如:BITMAP語(yǔ)句定義一個(gè)位圖,該位圖可被應(yīng)用程序顯示出來(lái)。filename為位圖文件,允許使用絕對(duì)路徑和相對(duì)路徑

46、(相對(duì)于程序項(xiàng)目路徑)的寫(xiě)法,一般存放在項(xiàng)目路徑的res子文件夾中。IDB_CARPICTURE BITMAP MOVEABLE rescar.bmp7313.2.4 資源與資源文件圖標(biāo)資源描述語(yǔ)句形式為:例如:圖標(biāo)資源標(biāo)識(shí)符圖標(biāo)資源標(biāo)識(shí)符 ICON 加載特性選項(xiàng)加載特性選項(xiàng) filenameIDI_APP ICON DISCARDABLE resapp.ico /主窗口圖標(biāo)資源主窗口圖標(biāo)資源7413.2.4 資源與資源文件光標(biāo)資源描述語(yǔ)句形式為:例如:光標(biāo)資源標(biāo)識(shí)符光標(biāo)資源標(biāo)識(shí)符 CURSOR 加載特性選項(xiàng)加載特性選項(xiàng) filenameIDC_APP CURSOR DISCARDABLE r

47、esapp.cur7513.2.4 資源與資源文件字體資源描述語(yǔ)句形式為:例如:字體資源標(biāo)識(shí)符字體資源標(biāo)識(shí)符 FONT 加載特性選項(xiàng)加載特性選項(xiàng) filenameIDR_FONT FONT DISCARDABLE rescmroman.fnt7613.2.4 資源與資源文件(5)字符串資源字符串表資源描述語(yǔ)句形式為:STRINGTABLE 加載特性選項(xiàng)加載特性選項(xiàng)BEGIN 字符串資源標(biāo)識(shí)符 字符串 .END7713.2.4 資源與資源文件字符串表語(yǔ)句定義了一個(gè)或多個(gè)字符串資源。例如:STRINGTABLE DISCARDABLE BEGIN IDS_APP_TITLE MainWindow

48、/應(yīng)用程序標(biāo)題資源應(yīng)用程序標(biāo)題資源 IDS_HELLO Hello World!END7813.2.4 資源與資源文件(6)自定義資源自定義資源類型可以是圖形格式數(shù)據(jù)、多媒體數(shù)據(jù)、文件數(shù)據(jù)等,其描述語(yǔ)句形式為:例如:其中資源類型標(biāo)識(shí)符是大于255的整數(shù)值,用作預(yù)定義的資源類型標(biāo)識(shí)。自定義資源標(biāo)識(shí)符自定義資源標(biāo)識(shí)符 資源類型標(biāo)識(shí)符資源類型標(biāo)識(shí)符 加載特性選項(xiàng)加載特性選項(xiàng) filenameIDR_JPG JPEG DISCARDABLE resflag.jpg7913.2.4 資源與資源文件5資源加載資源是通過(guò)Windows API函數(shù)加載到程序中的。(1)菜單、對(duì)話框資源加載菜單資源的加載一般在

49、窗口初始化階段進(jìn)行的,例如調(diào)用RegisterClassEx和CreateWindow函數(shù)時(shí)。對(duì)話框資源的加載是在創(chuàng)建對(duì)話框時(shí)進(jìn)行的。8013.2.4 資源與資源文件(2)內(nèi)置資源類型加載快捷鍵、位圖、光標(biāo)、圖標(biāo)和字符串資源,可以使用如下的API函數(shù)加載:HACCEL LoadAccelerators(HINSTANCE hInstance,LPCTSTR lpTableName); /加載快捷鍵加載快捷鍵HBITMAP LoadBitmap(HINSTANCE hInstance,LPCTSTR lpBitmapName); /加載位圖加載位圖HCURSOR LoadCursor(HINSTANCE hInstance,LPCTSTR lpCursorName); /加加載光標(biāo)載光標(biāo)HICON LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName); /加載圖標(biāo)加載圖標(biāo)/其中第其中第1個(gè)參數(shù)個(gè)參數(shù)hInstance為包含資源的應(yīng)用實(shí)例句柄,第為包含資源的應(yīng)用實(shí)例句柄,第2個(gè)參數(shù)為資源標(biāo)識(shí)名稱個(gè)參數(shù)為資源標(biāo)識(shí)名稱int LoadString(HINSTANCE hInstance,UINT uID,LPTSTR lpBuffer,int nBufferMax); /加

溫馨提示

  • 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)論