《圖片管理系統(tǒng)》需求分析說明書
《《圖片管理系統(tǒng)》需求分析說明書》由會員分享,可在線閱讀,更多相關(guān)《《圖片管理系統(tǒng)》需求分析說明書(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、圖片管理系統(tǒng)》需求分析說明書 需求分析說明說 [友好創(chuàng)達圖片管理系統(tǒng)] 需求分析說明書 北京友好創(chuàng)達科技有限公司 數(shù)字化生產(chǎn)中心 二零一三年二月 1 需求分析說明說 摘要 圖片管理系統(tǒng)主要功能就是實現(xiàn)對計算機上常見的圖像文件進行統(tǒng)一的管理操作,包括瀏覽,分類,信息的提取,查看方式的變換等,由于圖片格式眾多,而且常見的系統(tǒng)操作常常不能將非圖片格式的文件進行過濾,給圖片的查看造成了一定的不便,而且通常的查看文件屬性需要比較,麻煩的操作步驟,我們在軟件制作過程中將類似的操作作為默認(rèn)的顯示,另外可以按照自己的需要隨時將工具欄,狀態(tài)欄,目錄樹區(qū)域,預(yù)覽區(qū)域選擇為顯示或者以隱藏,使圖片
2、視圖區(qū)域顯示面積增大。 另外我們設(shè)計了文件夾下所有文件的屬性信息輸出到一個文本文件中,可以方便的有針對性地對文件的屬性信息進行處理,我們還設(shè)計了文件批量重命名功能,在文件命名雜亂的時候可以以一種有序的方式將文件名重新命名排序。圖片的瀏覽往往會出現(xiàn)希望獲取的顏色值的信息,顏色指示器的設(shè)計即為實現(xiàn)此功能,可以在顏色指示框內(nèi)顯示當(dāng)前鼠標(biāo)所在位置的顏色顯示,而RGB值的數(shù)值表示也為我們的工作提供了很大的方便。 實現(xiàn)此系統(tǒng)除了必要的編程知識以外,還要獲取多媒體,計算機文件系統(tǒng),存儲原理,等多方面的知識。我們在自己技術(shù)水平上進行了比較全面的探索,基本上實現(xiàn)了一個圖片管理系統(tǒng)所應(yīng)有的功能,并在軟件的穩(wěn)定
3、性上,功能的豐富程度上,做了一定的努力和探索。 關(guān)鍵字:圖片格式,名字外殼空間,RGB,REPORT視圖,動態(tài)鏈接庫 2 需求分析說明說 1 緒論 1.1 背景及意義 圖像是對客觀存在的對象的一種相似形描述,可以被存儲,復(fù)制,加工.它是用各種觀察系統(tǒng)以不同形式和手段觀測世界而獲得的.照片,繪畫,電視畫面等都是圖像的直觀例子.當(dāng)然還包括對一些視覺無法直接觀察到的物理圖像和空間圖像.比如紅外圖像,電磁場的圖形描述.科學(xué)研究表明,人們通過視覺系統(tǒng)獲得的信息量占所有信息量的75%以上.這說明圖像對人們認(rèn)知世界是極其重要的一個途徑. 二十世紀(jì)中葉產(chǎn)生的計算機技術(shù),自從發(fā)明以來就顯示出蓬勃的
4、生命力,圖像的技術(shù)也在這個新的技術(shù)平臺上有了新的應(yīng)用,為解放人類生產(chǎn)力提供了重要動力.計算機技術(shù)以及微型芯片的不斷進步,相關(guān)產(chǎn)品的大規(guī)模普及,使相關(guān)的應(yīng)用領(lǐng)域迅速擴展到家用娛樂方面,為人們的生活添加了更加豐富的元素.目前數(shù)碼相機的像素水平已經(jīng)足以為我們提供足夠清晰的數(shù)碼照片,而計算機存儲容量的增加為我們的存儲提供了方便,而且計算機上功能強大的圖像瀏覽,管理,處理軟件也方便了人們的需求.再加上網(wǎng)絡(luò)上資源極大的豐富,風(fēng)格各異的藝術(shù)設(shè)計,攝影藝術(shù)等,我們需要管理的圖片數(shù)量越來越大,當(dāng)然隨之而來的圖片的分類,檢索,相關(guān)信息的查看,圖片名字的批量命名也成了人們的實際需求. 1.2 同類系統(tǒng)發(fā)展動態(tài)
5、1.2.1網(wǎng)絡(luò)管理(即C/S架構(gòu)):主要以當(dāng)前網(wǎng)絡(luò)流行的網(wǎng)絡(luò)相冊為主,各大門戶,社交網(wǎng)站,都提供了照片的而存儲,及瀏覽.便于實現(xiàn)跨地域瀏覽以及分享.比如各大門戶都有給用戶提供相冊功能,使用戶可以方便的上傳自己的圖片,而且用戶只要以用戶名密碼登陸可以在任何地點獲取到自己的圖片,而且可以方便的設(shè)立共享和非共享,是可以方便的與人共享自己的圖片.有的郵件系統(tǒng)提供商將此功能集成在郵箱里.而同時時下比較流行的博客系統(tǒng),社交網(wǎng)站,也會允許用戶提供自己的圖像空間.也有不少網(wǎng)絡(luò)硬盤提供商免費提供網(wǎng)絡(luò)硬盤,存儲文件,圖像當(dāng)然可以作為文件上傳,但是只能以名字判 1 需求分析說明說斷內(nèi)容,只有將圖片現(xiàn)在下來才可以
6、看到圖像.優(yōu)缺點,方便共享,異地訪問,網(wǎng)絡(luò)速度限制,除了網(wǎng)絡(luò)硬盤提供可以保證完整性以外,有些系統(tǒng)會在用戶上傳以前對圖像的大小進行處理,如果用戶對圖像質(zhì)量要求嚴(yán)格的話,會有影響.網(wǎng)絡(luò)安全方面的原因,圖像的丟失,泄露,個人隱私的泄露,操作耗時,畢竟要通過遠端進行相關(guān)操作,有一定的滯后性.有待于網(wǎng)速的進一步提升. 1.2.2 單機版軟件(單機模式):主要以本地主機內(nèi)存儲的圖片為對象,功能強大.有些甚至有簡單的圖片處理功能.在本地安裝的瀏覽管理軟件主要是打開指定的文件,或者在某個文件夾下進行管理活動. 2 基礎(chǔ)知識描述,以及相關(guān)軟件介紹主要對圖像相關(guān)的一些概念進行闡述,從最基本的光與色彩,人的視覺
7、知,顏色空間,圖像分辨率,像素,不同色彩空間的轉(zhuǎn)換,圖形與圖像的區(qū)別,主要的圖像格式.作為文件被存儲在磁盤空間上的圖像文件的存儲方式,文件系統(tǒng)相關(guān),shell相關(guān)以 X mr. 及理論上一個圖像信息管理應(yīng)該具有的功能。再就是寫作論文以及實現(xiàn)軟件時涉及 的軟件,VC++6.0,MS-W0RD,CreatelnstallFree程序打包軟件。2.1RGB模型 任何顏色C都可以可用光電三原色的三種基色:紅(R=red:700nm)、綠 (G二green:546.1nm)、藍(B二blue:435.8nm)配出: C=rR+gG+bB 公式(3-1) 其中,r、g、b為三基色的比
8、例系數(shù),滿足r+g+b=1;R、G、B為三基色的單位,分別為1、4.5907、0.060光瓦(因為用紅、綠和藍三基色光匹配成白光時, 2 需求分析說明說 所需要的紅、綠和藍基色光的光通量之比為1?4.5907?0.0601)。用光電三原色混色,滿足加色原理(參見圖2-6): S ,品紅 品紅 圖2-6光電三原色混色的加色原理 如果每個像素的每個顏色分量(R,G,B)用二進制的1位來表示,那末每個顏色的分量只有“1”和“0”這兩個值。這也就是說,每種顏色的強度是100%,或者是0%。在這種情況下,每個像素所顯示的顏色是8種可能出現(xiàn)的顏色之一,如下表所示。 相加色: RGB00
9、0001010011100101110111顏色黑藍綠青紅品紅黃白表2-3相加色
RGB模式適用于顯示器這類發(fā)光物體。
RGB是由三種基本顏色Red紅、Green綠、Blue藍組成,每種顏色的亮度大小用數(shù)字0-255表示,共有1670萬種顏色。
R=G=B=0黑色
R=G=B=255白色
0 10、=0%白色
黑色C=M=Y=K=100%
CMY指色料三原色:青色(Cyan)、品紅(Magenta)和黃色(Yellow)。用這三種-7):基色混色,滿足減色原理(參見圖2
-7色料三原色混色的減色原理圖2
CMY模型主要用于打印和印刷彩色圖像。用彩色墨水或顏料進行混合,這樣得到的顏色稱為相減色。在理論上說,任何一種顏色都可以用這三種基本顏料按一定比例混合得到。用這種方法產(chǎn)生的顏色之所以稱為相減色,乃是因為它減少了為視覺系統(tǒng)識別顏色所需要的反射光。CMY以白色為底色減,即CMY均為0是白色,均為100%是黑色(但在實際中,由于油墨的純度等問題這樣得不到純的黑色,因此引入K)彩色打 11、印機采用的就是這種原理,印刷彩色圖片也是采用這種原理。按每個像素每種顏色用1位表示,相減法產(chǎn)生的8種顏色如下表所示。由于彩色墨水和顏料的化學(xué)特性,用等量的三基色得到的黑色不是真正的黑色,因此在印刷術(shù)中常加一種真正的黑色(blackink),所以CMY又寫成CMYK(其中K=black黑)。
青品黃相減
4
需求分析說明說
色紅色色
000白
001黃
010品紅
011紅
100青
101綠
110藍
111黑
表2-4相減色
相加色與相減色之間有一個直接關(guān)系,表2-5所示。利用它們之間的關(guān)系,可以把顯示的顏色轉(zhuǎn)換成輸出打印的顏色。相加混色和相減混色之間成對出現(xiàn)互補 12、色。例如,當(dāng)RGB為1?1?1時,在相加混色中產(chǎn)生白色,而CMY為1?1?1時,在相減混色中產(chǎn)生黑色。從另一個角度也可以看它們的互補性:從表4-7中可以看到,在RGB中的顏色為1的地方,在CMY對應(yīng)的位置上,其顏色值為0。例如RGB為0?1?0時,對應(yīng)CMY為1?0?1。
相加混色RGB相減混色CMY生成顏色
000
111
黑
八、、
001
110
藍
010
101
綠
011
100
青
100
011
紅
101
010
品紅
110
001
黃
111
000
白
5
需求分析說明說
表2-5相加色與相減色的關(guān)系
2. 13、3 顏色空間的轉(zhuǎn)換
RGB??CMY的互相轉(zhuǎn)換
RGB?CMY:C=1-RM=1-GY=1-B
CMY?RGB:R=1-CG=1-MB=1-Y
2.4 圖片的格式,相關(guān)標(biāo)準(zhǔn),以及比較
常用的圖像文件格式很多,JPG,GIF,BMP,PNG,
2.4.1 BMP
位圖(Bitmap)文件(*.BMP)是由Microsoft與IBM為Windows和PS/2制訂的圖像文件格式。支持灰度圖、偽彩圖和24位的真彩圖,可采用RLE無損壓縮(16/256色圖)或不壓縮(黑白/真彩圖)。格式簡單、顯示快,在Windows平臺中使用廣泛。缺點是文件大,占存儲空間和傳輸帶寬。一般用于小尺寸圖像和中 14、間/臨時圖像。
2.4.2 GIF
可交換圖形格式(GIF二GraphicsInterchangeFormat),由CompuServe公司于87年起定義,現(xiàn)有a與89a兩個主要版本,采用變長LZW壓縮算法。限制:最多256(索引)色、64K*64K像素。無損壓縮、文件小、使用廣泛(尤其是網(wǎng)絡(luò)),有大量圖片庫(美人照、景物特寫)。
2.4.3 TIF
標(biāo)記圖像文件格式(TIFF=TagImageFileFormat)(*。TIF),由Aldus和Microsoft聯(lián)合開發(fā),支持黑白、索引色、灰度、真彩圖,可校正顏色和調(diào)色溫,支持多種壓縮編碼(Huffman、LZW、RLE)。常用于對質(zhì) 15、量要求高的專業(yè)圖像的存儲。
6
需求分析說明說
優(yōu)點:通用、高質(zhì)、無損壓縮;
缺點:標(biāo)準(zhǔn)不統(tǒng)一、格式復(fù)雜、解碼難。
2.4.4 JPEG
JPEG(*.JPG)主要采用DCT(DiscreteCosineTransform離散余弦變換)進行有損壓縮,壓縮比可調(diào)整,在壓縮10~30倍后,圖像效果仍然不錯。適用于灰度圖與真彩圖,使用非常廣泛(尤其是網(wǎng)絡(luò))。一幅727*525(NTSCTV)的24位真彩圖,在
BMP、GIF和JPEG三種不同圖像文件格式下,文件大小和圖像壓縮比都差別很大。參見表2-6。
圖像格式文件大小壓縮比品質(zhì)
BMP1,145KB1:124位原圖
GIF24 16、0KB4。77:1256色
155KB7。39:1高質(zhì)(?原圖)
JPEG
58KB19。74:1標(biāo)準(zhǔn)(?GIF)
表2-6三種圖像格式的比較
2.4.5 PNG
PNG(PortableNetworkGraphicFormat可移植網(wǎng)絡(luò)圖形格式,讀成"ping")是W3C(WorldWideWebConsortium萬維網(wǎng)協(xié)會)制定的一種采用無損壓縮的圖像存儲文件格式,支持多達16位深度的灰度圖像和48位深度的彩色圖像,并且還可支持多達16位的a通道數(shù)據(jù)。PNG可以看作是GIF的一種推廣,它繼承了GIF的主要優(yōu)點,又增加一些GIF所不具備的特性,但不支持動畫。推出PNG的目的是希 17、望替代GIF(不支持真彩色)和TIFF(太復(fù)雜)這兩種也采用無損壓縮的圖像文件格式。
7
需求分析說明說
3模塊的劃分聯(lián)系及涉及的技術(shù)通常軟件的設(shè)計包括功能的設(shè)計與界面的設(shè)計兩大部分,功能方面主要依據(jù)需求而設(shè)計,界面方面是在功能的基礎(chǔ)上根據(jù)人機交互方面的規(guī)則進行,主要以用戶操作簡便,容易上手,所以開發(fā)過程中需要遵循軟件行業(yè)的開發(fā)規(guī)范,是使用者比較容
易了解掌握。我們的圖片管理系統(tǒng)目的就是想制作出一款軟件使人們可以不用花費
多余的操作就輕松實現(xiàn)個人計算機上的圖片的管理。
8
需求分析說明說
3.1軟件總體功能的結(jié)構(gòu):
界面視圖
菜單欄
FILEVIEWHELP
HELPT 18、OOLBARABOUTNEW
DOCUMENT
INFOROUTSTATUSBAR
BATCHRENAMEDIRECTORY
EXITPREVIEW
工具欄
終止線程新建
AboutREPOTRT
ICON顏色指示器
路徑指示器
客戶區(qū)
DIRECTORYVIEWPREVIEW
狀態(tài)欄
RGB時鐘
圖3-1軟件總體功能的結(jié)構(gòu)
以上為軟件界面的布局為導(dǎo)向的軟件結(jié)構(gòu)圖,基本上是軟件實現(xiàn)以后界面的映射,這里僅僅能反應(yīng)界面上的顯示,而真正的背后的個功能模塊,以及各模塊之間的
聯(lián)系需要以別的結(jié)構(gòu)圖來表示。在這里軟件的界面與背后代碼的聯(lián)系,軟件的功能
9
需求分析說明說 19、
與代碼的實現(xiàn),軟件各模塊之間的聯(lián)系均為立體的網(wǎng)狀的關(guān)系。所以我們盡量的以
圖表的形式,示意圖的形式并配以文字的介紹來力圖表達清楚自己的設(shè)計想法。
以下是菜單欄的函數(shù)對照示意圖。
3.1.1 FILE各功能與響應(yīng)函數(shù)的對應(yīng):
CThumbViewerView::OnFileNew()
FILE
NEW
CThumbViewerView::OnOut()
INFOROUT
CThumbViewerView::OnBatch()
BATCHRENAME
CMainFrame::OnClose()
EXIT
圖3-2FILE各功能與響應(yīng)函數(shù)的對應(yīng)
3.1.2 VIEW各 20、功能與響應(yīng)函數(shù)的對應(yīng):
MFC框架內(nèi)部實現(xiàn)
VIEW
TOOLBAR
MFC框架內(nèi)部實現(xiàn)
STATUSBAR
CMainFrame::OnViewDirectoryBar()
DIRECTORYBAR
CMainFrame::OnViewPreviewBar()
PRIVIEWBAR
-3各功能與響應(yīng)函數(shù)的對應(yīng)圖3
10
需求分析說明說
3.1.3 HELP各功能與響應(yīng)函數(shù)的對應(yīng):
CThumbViewerApp::OnAppAbout()
HELP
HELP
CThumbViewerView::OnMENUITEMhelp()
HELPDOCUMENT
21、圖3-4各功能與響應(yīng)函數(shù)的對應(yīng)
以下是工具欄上的函數(shù)功能對應(yīng)圖:
11
需求分析說明說
3.1.4TOOLBAR的各功能與函數(shù)對應(yīng)圖:
CThumbViewerView::OnFileNew()TOOLBAR
新建(NEW)
CMainFrame::OnStopThread()STOPTHREAD
CThumbViewerApp::OnAppAbout()
ABOUT
CThumbViewerView::OnReport()
REPORT
CThumbViewerView::Onthumb()
THUMB
CMainFrame::OnUpdateFileNew(CC 22、mdUI*pCmdUI)COLORSHOW
CMainFrame::OnUpdateFileNew(CCmdUI*pCmdUI)
PATHSHOW
圖3-5TOOLBAR的各功能與函數(shù)對應(yīng)圖
需求分析說明說
12
3.1.5客戶區(qū)CLIENTAREA的各功能與函數(shù)對應(yīng)圖:
CLIENTAREA
CDirTreeCtrl::Initialize()
CDirTreeCtrl::OnSelchanged(NMHDR*,LRESULT*)
DIRECTROYTREECDirTreeCtrl::RefreshShellRoot(pidlRoot,bIncludeFiles)
23、CDirTreeCtrl::ExpandItem(HTREEITEMhItem)
CDirTreeCtrl::DeleteChildren(HTREEITEMhParent)
CDirTreeCtrl::PopulateItem(HTREEITEMhParent)CDirTreeCtrl::FillItem(TVITEM&,LPCITEMIDLIST,
IShellFolder*,LPCITEMIDLIST)
CDirTreeCtrl::PreTranslateMessage(MSG*pMsg)
CPreviewBar::OnCreate(LPCREATESTRUCT)
LPDRA 24、WITEMSTRUCT)CPreviewBar::OnDrawItem(int,
PREVIEWFUNCCPreviewBar::OnSize(UINTnType,intcx,intcy)
CPreviewBar::OnLButtonUp(UINT,CPoint)
CThumbViewerView::OnInitialUpdate()
CThumbViewerView::Create(lpszClassName,lpszWindowName,LISTVIEWdwStyle,rect,pParentWnd,nID,pContext)
CThumbViewerView::LoadThum 25、bImages()
CThumbViewerView::OnFileNew()
CThumbViewerView::OnItemchanged(NMHDR*,LRESULT*pResult)
CThumbViewerView::TerminateThread()
CThumbViewerView::OnLButtonDblClk(UINTnFlags,CPointpoint)CThumbViewerView::PreTranslateMessage(MSG*pMsg)
CThumbViewerView::OnSelectTree(wParam,lParam)CThumbViewe 26、rView::GetItemInfor(inti,intnum)
voidCThumbViewerView::OnDestroy()
CThumbViewerView::OnMENUITEMhelp()
CThumbViewerView::OnReport()
CThumbViewerView::Onthumb()
CThumbViewerView::OnColumnclick(NMHDR*,LRESULT*)CThumbViewerView::OnUpdateReport(CCmdUI*pCmdUI)CThumbViewerView::OnOut()
CThumbViewerVi 27、ew::OnBatch()
13
需求分析說明說
圖3-6客戶區(qū)CLIENTAREA的各功能與函數(shù)對應(yīng)圖3.1.6STATUS的各功能與函數(shù)對應(yīng)圖:
CMainFrame::OnUpdateFileNew(CCmdUI*pCmdUI)
STATUS
RGBVALUE
CMainFrame::OnTimer(UINTnIDEvent)
TIMESHOW
圖3-7STATUS的各功能與函數(shù)對應(yīng)圖
3.2 軟件功能模塊的設(shè)計
這款軟件主要包括以下七種功能,由于技術(shù)水平,以及時間,經(jīng)驗的限制我們實現(xiàn)了大部分模塊的功能,沒有實現(xiàn)的部分可以作為我們今后努力的方向。也為我們今后這個軟件 28、的繼續(xù)改進,功能豐富提供一個基礎(chǔ)。
功能的描述,和軟件真正的實現(xiàn)是有不一致的,軟件功能的描述更著重于用戶體驗,以及用戶的要求,而實現(xiàn)部分當(dāng)然會遵循這個需求進行設(shè)計,但是在實現(xiàn)時又會因為實際情況進行重新整合,比如有些功能會交叉,而有的會放在別的模塊里進行實現(xiàn)。考慮到軟件實際編寫的過程,要做好這兩者之間的對應(yīng)。,而且還有一種情況是客戶要求的功能是建立在軟件實現(xiàn)上的,勢必個功能模塊要與軟件創(chuàng)建時某些系統(tǒng)自身的功能聯(lián)系。
3.2.1目錄樹功能模塊
圖像文件雖然展現(xiàn)出來的是萬紫千紅的景色,或者是精彩絕倫的設(shè)計,但是它在計算機磁盤上的存儲確實和其他文件是一樣的,通常情況下這些文件是放在某個
14
29、
需求分析說明說
文件夾下面的,而如果我們使用平時的使用方式,依次點擊進入到那個目錄下會需要多次的點擊,比如計算機啟動以后我們會首先從桌面\我的電腦\x盤分區(qū)\X文件夾\x圖片,每次都需要雙擊,并且當(dāng)某個目錄下文件夾眾多時,我們需要滾動鼠標(biāo)滑輪,尋找目標(biāo)文件夾。當(dāng)然我們可以使用windows自帶的文件查看方式需選擇各種查看方式,而且當(dāng)你要返回上一個文件夾或者后退時,都需要移動較大的距離。
我們選擇使用類似與資源管理器的目錄樹列表,就可以方便的解決這個問題,當(dāng)我們要進入某個文件夾時只需要點擊他的父文件夾前面的加號,即可輕松打開,以列表的形式展示可以讓我們快速的找到目標(biāo)文件夾?;赝藭r更方便,只 30、要選擇上一級目錄即可跳出,而且當(dāng)我們要迅速跳轉(zhuǎn)到其他分區(qū),文件夾時效率更加高效。
我們這個版本只是提供目錄的伸展,折疊,以及對包括對主存儲器以外的存儲器地支持,包括光盤,可移動磁盤,但是局域網(wǎng)內(nèi)共享的文件的查閱還不行,因為這涉及到了網(wǎng)絡(luò)方面的技術(shù)。暫時還不能提供文件夾相關(guān)的操作,比如復(fù)制,刪除,文件的拖放等。
目錄樹區(qū)域的大小是可以通過鼠標(biāo)點擊他的邊框進行拖放的。而且只要我們選擇了菜單欄上的狀態(tài)菜單可以控制目錄樹的顯示和隱藏。
當(dāng)我們使用目錄樹時,我們選擇的消息會通過文檔類視圖向文件夾下的各項目信息顯示于右邊的試圖模塊里。
3.2.2 預(yù)覽欄功能模塊
我們通常使用的microsoft 31、的圖片查看器可以使用縮放功能,但是當(dāng)一張圖片縮小到自身大小的時候,我們便沒有辦法縮小,雖然繼續(xù)縮小會影響圖像的質(zhì)量但是我們在實際操作過程中的確有是圖片縮小的需求。通常的情況下,我們只能去選擇圖像處理軟件比如photoshop,firewoks等,但就為這一個需求去安裝那么龐大的住那業(yè)軟件,以及對系統(tǒng)資源的占用,都是極不合算的。所以我們在預(yù)覽右邊視圖模塊選擇的目標(biāo)圖像文件時,不僅僅可以顯示他們,而且可以通過拖拉preview欄的大小實現(xiàn)圖片顯示大小的縮放。這一功能在使用過程中是沒有直接通過滾輪調(diào)整大小方便,在以后的版本改進計劃中會逐步加入的。同上一個目錄樹模塊相同,他的顯示以及隱藏也可以通過菜單 32、欄上狀態(tài)菜單的選擇實現(xiàn)。
15
需求分析說明說
3.2.3 視圖欄功能模塊
視圖欄模塊可以說是整個軟件的核心部分,因為軟件的目標(biāo)就在管理上,所以我們要在這個模塊上實現(xiàn)多樣方式的查看,而這個模塊也是和其他幾個模塊聯(lián)系最頻
繁的一個。它可以接受工具欄上的兩個查看方式按鈕的選擇消息,變換文件夾下文
件序列的顯示方式,默認(rèn)的查看方式是縮略圖顯示,而當(dāng)選擇Report模式時首先在默認(rèn)的狀態(tài)下,只顯示目標(biāo)文件的名字。此時會計算各個目標(biāo)的區(qū)域位置,為顯示tooltip提示做準(zhǔn)備,而當(dāng)我們在工具欄上選擇詳細信息查看方式時,將會把所有的項目以列表形式列出,列出的文件屬性有名字,大小,文件類型,上次修 33、改時間,圖像的寬高,圖像的分辨率。這時候由于各項信息很明顯就不需要tooltip的顯示了。
除了顯示以外,如果我們需要使用系統(tǒng)自帶的圖片查看器查看,我們可以雙擊目
標(biāo)圖像文件。
3.2.4 信息輸出功能模塊
我們有時候會需要將文件夾以及其下的文件進行遍歷列表輸出,形成txt文檔,或者Html文檔的形式存放。所以可以初步的實現(xiàn)在一個文件夾下的文件列表輸出。3.2.5文件修改功能模塊
文件修改包括兩部分:文件內(nèi)容的修改,文件屬性信息的修改。
(1) 文件內(nèi)容的修改使之使用圖像處理的方法對圖像做出有限局部的修改,比如添加文字,添加日期。修改圖片局部的瑕疵,進行簡單的色彩處理,灰度處理,格 34、式轉(zhuǎn)換等。這一部分的功能需要對圖像處理有一定的認(rèn)識,這個功能我沒有實現(xiàn)。
(2) 文件屬性信息的修改:主要集中在名字的修改,最重要的需求是名字的批量命名。目前的圖片分類方法還是主要集中在以文件夾的形式進行分類存放。批量命名功能目前只能簡單的以數(shù)字序列命名,這離實際的功能需求還有一定的距離,因為在實際應(yīng)用中不僅僅是以數(shù)字為序列的,有一字母為序列的,有的還有對特定位置的字段進行有序更名,所以我們這里還只能是一個實驗性質(zhì)的功能。
16
需求分析說明說
3.2.6 搜索模塊功能
(1)文件的全盤掃描,技術(shù)允許的話可以將掃描結(jié)果存儲在數(shù)據(jù)庫中,甚至可以監(jiān)視文件的改動情況。但是可以設(shè)置掃描條件限 35、制,google的picssa有全盤掃描的功能,但是沒有條件限制,使得一些根本沒有欣賞價值的ICON,BMP小圖片被搜索出來,占用了有限的資源,又不能為用戶所使用。我們可以設(shè)置以文件的名字,大小,寬高比,日期,搜索范圍等條件進行組合搜索,使得范圍縮小化,提高搜索準(zhǔn)確率。
(2)我們發(fā)現(xiàn)通常的搜索是一次性的,即只能在條件一的情況下得出結(jié)果,但是如果要在得出的搜索結(jié)果內(nèi)部再進行二次搜索時就會產(chǎn)生困難。
以上兩個目標(biāo)由于設(shè)計過多的文件系統(tǒng)相關(guān)操作,我們由于自己的能力沒有能夠?qū)崿F(xiàn)。
3.2.7 輔助功能模塊
包括一個時鐘,一個顏色指示器,一個RGB值動態(tài)解析器。一個路徑顯示器。這幾個功能都會放 36、在工具欄上和狀態(tài)欄上,而這兩個工作條都可以被選擇顯示或者隱藏。還有一個幫助文檔,當(dāng)我們點擊help中的helpdocument時會啟動網(wǎng)頁瀏覽器打開HTML形式的幫助文檔。內(nèi)容包括文檔信息,使用幫助,功能信息。以及版權(quán)聲明等。
17
需求分析說明說3.3界面的設(shè)計(軟件實現(xiàn)界面的截圖)3.3.1啟動畫面
version1.0
圖3-8啟動畫面3.3.2軟件運行以后的各部分截圖顯示
圖3-9軟件運行以后的各部分截圖顯示
18
需求分析說明說3.3.3目錄樹伸展的演示
圖3-10目錄樹伸展的演示3.3.4縮略圖的演示
37、
圖3-11縮略圖的演示
19
需求分析說明說3.3.5詳細信息查看方式的演示
圖3-12詳細信息查看方式的演示
3.3.6提示的演示
FiltParh:E:i測試用圖-Jpg
HightiO^q-pi>
-.Vidthpix
XDPI72pix'inch
¥CPI:72pix'inch
Nura:7/9
FileNane;L_.jpg
May.g
last.madiHEd:£007^JulV0803:07
圖3-13提示的 38、演示
20
需求分析說明說3.3.7輔助功能的演示,顏色指示器,路徑的顯示0??=EHElIHWhOueihi叱ml也uljT缸Flijiqti詢(kilinlulTellrfthl#協(xié)|託血1曲出
圖3-14工具欄
3.3.8 RGB值的顯示,時鐘的顯示
12C-5.aMR少口L7GO加
圖3-15狀態(tài)欄
3.3.9 圖片選擇及預(yù)覽
圖3-16圖片預(yù)覽
3.3.10 菜單的選擇,及各個模塊的對應(yīng)關(guān)系
Help
屮Toolb-ar
#SratusE^r
-"GirectoryEar
*Prevci^wBar
-二本地 39、磁盤i:E:]
圖3-17對應(yīng)關(guān)系
21
需求分析說明說
對應(yīng)于這些菜單選項,我們可以選擇讓某個欄目消失或者顯示
3.3.11 通過雙擊目標(biāo),調(diào)用圖片查看器
右1xDti-A-ril
a
bi
□'IlO
■J.5
._0■itlif£0
tJMMCiQ螟1遷用圖ns干托
溜電何
J応電站益.
J本LHEi當(dāng).3*'
豐:地晞老(FI
DC替
25(LMon-WinctawiFEjtrCif?&秦葦龍
SChJpa
圖3-18圖片查看器的調(diào)用
3.4 軟件功能涉及的技術(shù)
3.4.1 MFC界面的設(shè)計
選擇使用單文檔視圖,作為運行在windows 40、操作系統(tǒng)上的軟件開發(fā)帶有界面的程序必須要使用Microsoft提供的意境封裝好了的MFC(微軟基礎(chǔ)類庫),微軟將常用到的框架,通用空間,操作集中使用C++類封裝的特性,將這些形成借口,供程序員直接調(diào)用,提高了開發(fā)效率,當(dāng)然能夠提供界面開發(fā)的還包括使用basic語言的VB,使用pascal語言的Delphi,還有帶有跨平臺性的java語言。但總體來說使用MS提供的開發(fā)工具,一是當(dāng)前流行,再就是于系統(tǒng)的集成度,兼容度高。
3.4.2 動態(tài)鏈接庫的使用
對動態(tài)庫使用的一些介紹,本次軟件的開發(fā)需要調(diào)用一些外部的動態(tài)鏈接庫,
MS自身提供了一些圖片格式的加載,但是對常見流行的格式支持得不夠完全,而 41、
22
需求分析說明說
且調(diào)用的時候略嫌麻煩,而使用開放源碼的圖形庫CXIMAGE就會很輕松的讓軟件實現(xiàn)多格式支持,加載,顯示,這幾個功能對CXIMAGE本身強大的功能來說顯得大材小用,但是這可以給我們帶來方便的調(diào)用,以及以后軟件功能豐富版本升級帶來好處。
3.4.3 VC的環(huán)境設(shè)置使用這個軟件以前需要對環(huán)境進行配置,使用這個開發(fā)工具以前,我們由于引入了動態(tài)鏈接庫,而且還調(diào)用了ACTIVEPROJECT控件的部分功能,而且在軟件的調(diào)試過程中以及最后發(fā)布版本時,使用了debug,release,兩種編譯方式,所以工具軟件的環(huán)境設(shè)置也是一個比較復(fù)雜的問題。流行的圖形庫,使用圖形庫的引入
42、3.4.4 Active控件的添加,及使用
啟動畫面使用的技術(shù),啟動畫面添加時需要ACTIVEPROJECT的支持,所以我們有必要對這個技術(shù)有所了解。
3.4.5 外殼類名字空間
(a) 在WINDOWS中,使用了外殼名字空間(ShellNameSpace),它顯示整個WINDOWS的文件目錄樹.外殼名字空間是Windows下的標(biāo)準(zhǔn)文件系統(tǒng),它大大擴展了Dos文件系統(tǒng),形成了以“桌面”(Desktop)為根的單一的文件系統(tǒng)樹,原有的,盤、,盤等目錄樹變成了“我的電腦”這一外殼名字空間子樹的下一級子樹,而像
“控制面板”、“回收站”、“網(wǎng)上鄰居”等應(yīng)用程序及“打印機”等設(shè)備也被虛擬成了外 43、殼名字空間中的節(jié)點。另外,與,,,中物理存儲只能和文件系統(tǒng)項一一對應(yīng)這一點不同的是,一個實際目錄在外殼名字空間中可以表現(xiàn)為不同的項。例如
“我的文檔”與“C:\MyDocuments”其實都指向“C:\MyDocuments”目錄,但它們在外殼名字空間中是不同的項。
(b) 外殼名字空間下的路徑:PIDL
PIDL是一個元素類型為ITEMIDLIST結(jié)構(gòu)的數(shù)組,數(shù)組中元素的個數(shù)是未知的,但緊接著數(shù)組末尾的必是一個雙字節(jié)的零。每個數(shù)組元素代表了外殼名字空間樹中的一層(即一個文件夾或文件),數(shù)組中的前一元素代表的是后一元素的父文件夾。
23
需求分析說明說
由此可見,PIDL實際上就是 44、指向一塊由若干個順序排列的ITEMIDLIST結(jié)構(gòu)組成、并在最后有一個雙字節(jié)零的空間的指針。所以PIDL的類型就被Windows定義為ITEMIDLIST結(jié)構(gòu)的指針。PIDL亦有“絕對路徑”與“相對路徑”的概念。表示“相對路徑”的PIDL只有一個ITEMIDLIST結(jié)構(gòu)的元素,用于標(biāo)識相對于父文件夾的“路徑”;表示“絕對路徑”的PIDL(簡稱為“絕對PIDL”)有若干個
ITEMIDLIST結(jié)構(gòu)的元素,第一個元素表示外殼名字空間根文件夾(“桌面”)下的某一子文件夾A,第二個元素則表示文件夾A下的某一子文件夾B,其余依此類推。這樣絕對PIDL就通過保存一條從“桌面”下的直接子文件夾或文件的絕對 45、PIDL與相對PIDL是相同的,而其他的文件夾或文件的相對PIDL就只是其絕對PIDL的最后一部分了。由于所有的PIDL都是從桌面下的某一個子文件夾開
始的,所以對于桌面本身來說,它的PIDL數(shù)組顯然一個元素都沒有。這樣就只剩下PIDL數(shù)組最后的那個雙字節(jié)的零了。所以,“桌面”的PIDL就是一個16位的零3.4.6圖形接口Ipicture
圖像對象的主要接口是IPicture和IPictureDisp。IPictureDisp從IDispatch繼承,提供了通過自動化訪問圖片屬性的能力。圖片對象可通過OleCreatePictureIndirect
創(chuàng)建。關(guān)于IPicture支持的其他接 46、口和方法可以看MSDN,—般創(chuàng)建圖片對象可以用OleLoadPicture函數(shù),它簡化了基于流內(nèi)容創(chuàng)建圖片對象。
3.4.7 CXIMAGE圖形庫的引入
CxImage對象是一個擴展了的位圖。作者只是在位圖結(jié)構(gòu)上添加了一些起存儲信息作用的成員變量。一個CxImage對象(同時)也是一組層。每個層只有在需要時才會分配相應(yīng)的緩沖區(qū)。CxImage::pDib代表著背景圖像,CxImage::pAlpha代表著透明層,CxImage::pSelection代表著被選中的層,被用來創(chuàng)建圖像處理時讓用戶感興趣的區(qū)域。在這三個特殊層面的基礎(chǔ)上,你可以增加一些額外的層,這些層可以存儲在CxImage:: 47、pLayers中。一般說來,層是一個完整的CxImage對象。因此,你可以構(gòu)造很復(fù)雜的嵌套層。
24
需求分析說明說
3.4.8 線程的創(chuàng)建,保護,與終止
創(chuàng)建線程的原因,線程的使用,圖片由于其巨大的體積,在顯示時會消耗大量的內(nèi)存資源,而且做作為程序功能的一部分,我們不可能讓這個程序停滯在那里,去等待圖片加載完成,而且由于誤操作等一些常見的原因,我們需要對左邊目錄樹的操作要求有比較快的反應(yīng)速度,這些都需要開辟新的線程去完成,并且要控制好線程的開啟,結(jié)束,以及保護。
3.4.9 tooltip的實現(xiàn),并隨著查看方式的不同改變目標(biāo)區(qū)域
tooltip類主要能夠?qū)崿F(xiàn)鼠標(biāo)懸停的時候可以顯示 48、相應(yīng)的屬性信息,這里主要應(yīng)用在VIEW視圖時顯示圖片的詳細信息.
3.4.10文件信息打包成結(jié)構(gòu)Filestuct
我們在軟件的VIEW許多地方都會用到文件信息結(jié)構(gòu),我們在每次選擇文件夾時都會對所在目錄的所有文件把文件名存進一個VECTOR容器中,在這個過程中我們依次將文件名,大小,日期,文件類型,寬高,分辨率存入Filestuct中.3.4.11report視圖下排序的實現(xiàn)
當(dāng)我們選擇REPORT方式查看listview的方式,將會以一個列表的方式將各屬性信息存入列表中,而當(dāng)我們單擊某一列時,可以對相關(guān)屬性的列表進行排序.
4軟件的實現(xiàn)以及主要函數(shù)的介紹軟件主要功能分為兩部分,對應(yīng)于 49、界面上的左右兩部分,我們兩個人一個負責(zé)目錄樹(Directory)和預(yù)覽區(qū)(Preview)。一個負責(zé)視圖區(qū)(View)。
軟件的其他功能基本上為輔助功能實現(xiàn),將在最后介紹。
25
需求分析說明說
4.1 目錄樹功能實現(xiàn)
4.1.1 目錄樹所在區(qū)域的創(chuàng)建
目錄樹要附加在一塊區(qū)域之上,我們使用TOOLBAR類來實現(xiàn)。
CDirectoryTreeBar即為最終實現(xiàn)的類。它的繼承示意圖為:
CWnd
CControlBar
#definebaseCSizingControlBarCFCsizingControlBarGCDirectoryTreeBardefinein“scba 50、rg.cpp”
definein“sizecbar.cpp”baseCSizingControlBar
CSizingControlBarG
baseCSizingControlBarCF
CSizingControlBarCF
CDirectoryTreeBar
圖4-1CDirectoryTreeBar類的繼承關(guān)系
區(qū)域的創(chuàng)建:
創(chuàng)建區(qū)域類CDirectoryTreeBar的對象m_wndDirTreeBar,在MainFrm。h中定義
CDirectoryTreeBarm_wndDirTreeBar;
在CdirectoryTreeBar類由OnCreate函數(shù)實現(xiàn), 51、用來創(chuàng)建目錄樹的背景區(qū)域,在MainFrm。cpp中定義:
創(chuàng)建函數(shù):m_wndDirTreeBar°Create(…)
類型設(shè)置函數(shù):m_wndDirTreeBar°SetBarStyle(…)
區(qū)域??款愋驮O(shè)置:m_wndDirTreeBar°EnableDocking(…),
客戶區(qū)域接受??康倪吔缭O(shè)置:EnableDocking(…);
需求分析說明說
26
4.1.2 目錄樹的創(chuàng)建
目錄樹本身由CdirTreeCtrl實現(xiàn),它的繼承示意圖為:
CObject
CCmdTarget
CWnd
CTreeCtrl
CDirTreeCtrl
圖4-2CDir 52、TreeCtrl類的繼承關(guān)系
目錄樹構(gòu)造函數(shù):CDirTreeCtrl::CDirTreeCtrl(…)
目錄樹初始化函數(shù):CDirTreeCtrl::Initialize()建立根目錄即桌面:RefreshShellRoot(…);
判斷創(chuàng)建的目錄是否是根目錄,如果是根目錄就將多余的結(jié)點刪除:
RefreshSubltems(…)由RefreshShellRoot(…)函數(shù)調(diào)用。
如果建立的目錄是根目錄就調(diào)用PopulateRoot(…)函數(shù),遍歷當(dāng)前文件夾。如果當(dāng)前文件夾中有子文件夾,就調(diào)用FillItem(…)函數(shù)去填充當(dāng)前文件目錄當(dāng)我們?nèi)c擊目錄樹前面的小圖標(biāo)”+”號或者書記 53、這個文件夾時,系統(tǒng)會進入次文件夾并開始遍歷次文件夾。由Onltemexpanding()函數(shù)實現(xiàn)。
當(dāng)一個文件夾展開后,去點擊目錄樹上文件夾前面的小圖標(biāo)”-“號時,系統(tǒng)進入此文件夾并開始遍歷刪除此文件夾里的子文件夾。由OnEndlabeledit(…)函數(shù)實現(xiàn)。
4.2 圖片預(yù)覽區(qū)的創(chuàng)建
4.2.1圖片預(yù)覽區(qū)的創(chuàng)建
圖片預(yù)覽區(qū)由CpreviewBar類實現(xiàn),它的對象在MainFrm。h中定義
CPreviewBarm_wndPreviewBar;
27
需求分析說明說
CpreviewBar的繼承關(guān)系如圖:
CWnd
CControlBar
#definebaseCSiz 54、ingControlBarCFCsizingControlBarGCDirectoryTreeBardefinein“scbarg.cpp”
definein“sizecbar.cpp”baseCSizingControlBar
CSizingControlBarG
baseCSizingControlBarCF
CSizingControlBarCF
CPreviewBar
圖4-3CPreviewBar類的繼承關(guān)系
圖像預(yù)覽工具欄的創(chuàng)建:m_wndPreviewBar°Create(…)預(yù)覽欄欄風(fēng)格設(shè)置:m_wndPreviewBar°SetBarStyle(…)預(yù)覽工具欄停 55、靠位置:DockControlBar(…)
4.1.2 圖片畫布的創(chuàng)建
圖片畫布的創(chuàng)建在CPreviewBar::OnCreate(…)中調(diào)用
畫布對象m_wndCanvas的類型為CStatic,其繼承關(guān)系圖為:
CObject
CCmdTarget
CWnd
CStatic
圖4-4CStatic的繼承關(guān)系圖m_wndCanvas.Create(…)在圖片預(yù)覽區(qū)域上,我們將畫布區(qū)域用于顯示圖片,在這里設(shè)置圖片顯示的大小
28
需求分析說明說
和風(fēng)格。
CPreviewBar::OnSize(…)
由于原圖片的寬高比例和顯示區(qū)域的寬高比例有所差別,需要進行相關(guān)的調(diào)整 56、。所以原圖寬高比設(shè)置為:
fImgRatio=(float)pDoc->m_pSelectedImage->GetHeight()/pDoc->m_pSelectedIma
ge->GetWidth();
顯示區(qū)域的寬高比例為:
fRatio=(float)nHeight/nWidth;在圖片顯示區(qū)域的寬,高等信息設(shè)置完畢后開始繪畫這篇區(qū)域:CPreviewBar::OnDrawItem(...)軟件啟動以后可以設(shè)置顯示框架的大小:
CPreviewBar::OnLButtonUp(…)
4.3 視圖區(qū)域功能實現(xiàn)
4.3.1視圖區(qū)域主要由CThumbViewerView類實現(xiàn)
57、CThumbViewerView的繼承關(guān)系圖為:
CWnd
CView
CCtrl
ViewCListView
CThumbViewer
View
圖4-5CThumbViewerView的繼承關(guān)系
可以分為兩種方式查看:
默認(rèn)的縮略圖查看方式:
CThumbViewerView::Onthumb(…)
可以通過工具欄上的選擇,實現(xiàn)詳細信息查看方式:
29
需求分析說明說
CThumbViewerView::OnReport(?)
圖片加載時需要調(diào)用:CThumbViewerView::LoadThumbImages(?)而上面的加載函數(shù)則要調(diào)用回調(diào)加載函數(shù):
58、unsigned__stdcallCThumbViewerView::LoadThumbNail(?)圖片文件信息以及圖像內(nèi)容信息結(jié)構(gòu)的在ThumbViewerView。h中定義structStruet
{
CStringfilename;
DWORDdwlength;
intfiletype;
CStringm_mtime;
inthight;
intwidth;
intxdpi;
intydpi;
};
縮略圖列表主要由類型為CImageList實現(xiàn),它的對象在ThumbViewerView.h中定義CImageListm_ImageListThumb;CImageL 59、ist的繼承關(guān)系如圖:
CObject
CImageList
圖4-5CImageList的繼承關(guān)系
CImageList的創(chuàng)建函數(shù)為:m_ImageListThumb.Create(?)而ListCtrl為了
能夠加載各對象的縮略圖片,需要使用下面的函數(shù)進行關(guān)聯(lián):
ListCtrl.SetImageList(&m_ImageListThumb,LVSIL_NORMAL);
ListCtrl的背景顏色設(shè)置為:ListCtrl.SetBkColor(RGB(45,100,88));
30
需求分析說明說
ListCtrl的類型為CListCtrl,其繼承關(guān)系圖:
CObje 60、ct
CCmdTarget
CWnd
CListCtrl
圖4-6繼承關(guān)系圖
線程終極函數(shù)為:CThumbViewerView::TerminateThread()
4.4 與視圖功能相關(guān)的功能實現(xiàn)
4.4.1縮略圖的信息提示功能
信息提示功能主要是由CToolTipCtrl類實現(xiàn),它的對象ToolTipCtrl在
ThumbViewerView.h中定義:CToolTipCtrlToolTipCtrl;CToolTipCtrl類的繼承關(guān)系圖:
CObject
CCmdTarget
CWnd
CToolTipCtrl
圖4-7CToolTipCtrl類的繼承關(guān)系
61、獲得安全句柄:ToolTipCtrl.GetSafeHwnd()
創(chuàng)建:ToolTipCtrl.Create(this,TTS_ALWAYSTIP)
激活ToolTipCtrl.Activate(TRUE);
向ToolTipCtrl發(fā)送消息:CThumbViewerView::PreTranslateMessage(…)
ToolTipCtrl添加顯示內(nèi)容的函數(shù):CThumbViewerView::Getitemlnfor(…)
31
需求分析說明說
4.4.2 詳細信息查看方式的相關(guān)功能
列表屬性信息插入ListCtrl.InsertColumn(?)
列表個項目插入Li 62、stCtrl.SetitemText(?)
列表單個屬性的選擇:CThumbViewerView::OnColumnclick(?)
單個屬性的排序函數(shù):CALLBACKCThumbViewerView::CompareFunc(?)
內(nèi)部排序函數(shù):CThumbViewerView::OnSortitem(?)
4.5 顏色指示器的實現(xiàn)
鼠標(biāo)當(dāng)前指針的位置:GetCursorPos(?)
當(dāng)前位置顏色的獲取:COLORREFcol=GetPixel(?)
狀態(tài)欄RGB值的實現(xiàn):m_wndStatusBar.SetPaneText(?)
工具欄上顏色指示框的的實現(xiàn):pDC->Re 63、ctangle(?)
4.6 路徑指示器的實現(xiàn)
獲取當(dāng)前主框架的指針:
CMainFrame*pFrame=(CMainFrame*)AfxGetMainWnd();
獲得活動文檔:
CThumbViewerDoc*pDoc=(CThumbViewerDoc*)pFrame->GetActiveDocument();
路徑的獲取:pDoc->m_strCurrentDirectory
4.7 目錄下文件信息的輸出
主要由CThumbViewerView::OnOut()函數(shù)實現(xiàn):
創(chuàng)建輸出文件的:CreateFile(?);
輸出文件的位置:"C:\\Documentsan 64、dSettings\\Administrator\\桌面\\infor.txt"
32
需求分析說明說
獲取listctrl的對象的數(shù)目:
intnum=ListCtrl.GetItemCount();
獲得文件的屬性結(jié)構(gòu):
Struct*pStruct=(Struct*)ListCtrl.GetItemData(j);
4.8 文件的批量命名
主要由CThumbViewerView::OnBatch()函數(shù)實現(xiàn)
單個文件的重命名:CFile::Rename(path,newname);文件類型的獲取:
intn=type.GetLength()-type.ReverseF 65、ind('.');type=type.Right(n);
4.9 調(diào)用圖片查看器
主要由CThumbViewerView::OnLButtonDblClk(?)
獲取文件的全路徑:
CStringpath=pDoc->m_strCurrentDirectory+'\\'+pDoc->m_vFileName[nIndex];
調(diào)用microsoftwindows自帶的圖片傳真查看器查看圖片:
ShellExecute(m_hWnd,"open",path,NULL,NULL,SW_SHOWNA);
4.10 打開軟件的幫助文檔
主要由CThumbViewerView::OnMEN 66、UITEMhelp()函數(shù)實現(xiàn)
選擇文檔,主要是HTML文件,選擇文檔的打開方式:MicrosoftIE
HWNDh=FindWindowEx(NULL,NULL,NULL,"MicrosoftInternetExplorer")文件的打開:
33
需求分析說明說
ShellExecute(h,"open","./help/index.html",NULL,NULL,SW_SHOWNA);
4.11 幾個重要工具條的隱藏和顯示
4.11.1目錄樹的顯示與隱藏
CMainFrame::OnViewDirectoryBar()
隱藏::ShowWindow(m_wndDirTreeBar.m_hWnd,SW_HIDE);顯
示::ShowWindow(m_wndDirTreeBar.m_hWnd,SW_SHOW);
預(yù)覽欄的顯示與隱藏:
CMainFrame::OnViewPreviewBar()
隱藏:::ShowWindow(m_wndPreviewBar.m_hWnd,SW_HIDE);顯
示:::ShowWindow(m_wndPreviewBar.m_
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版小學(xué)數(shù)學(xué)五年級下冊圖形的運動(三)-1課件
- 供應(yīng)鏈管理方法
- 2019最新青島版數(shù)學(xué)一年級上冊第三單元《走進花果山-10以內(nèi)的加減法》(信息窗6)課件
- 第四章勞動中的心理、生理狀態(tài)對安全的影響
- 201x九年級物理上冊-雙休作業(yè)八(新版)教科版課件
- 課件:項目一-電子商務(wù)物流系統(tǒng)規(guī)劃
- 【人教版】2012-2013學(xué)年九年級(全一冊)數(shù)學(xué)小復(fù)習(xí):第27章相似復(fù)習(xí)課件
- 消化腺(全英文)課件
- 小學(xué)語文資源五年級上冊課件《落花生》課件第一課時
- 納米材料的基本效應(yīng)課件
- 分析化學(xué)概論-課件
- 沉浸式光影解決方案課件
- 第六講加固Windows操作系統(tǒng)安全ppt課件
- 民主選舉投出理性一票ppt課件
- 高二數(shù)學(xué)選修正態(tài)分布推薦實用全套PPT