


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn) 10 多媒體與網(wǎng)絡(luò)編程【測(cè)試卷 1】編寫(xiě)代碼實(shí)現(xiàn)制作一個(gè)音頻文件播放器。只需要實(shí)現(xiàn)如圖所示的簡(jiǎn)單界面,點(diǎn)擊打開(kāi)彈出 對(duì)話框,打開(kāi)一個(gè) .wav 的波形音頻文件,點(diǎn)擊“播放”按鈕開(kāi)始播放,點(diǎn)擊“停止”按鈕 則停止播放,按“關(guān)機(jī)”按鈕則退出應(yīng)用程序。需求分析:1,項(xiàng)目背景和原因。波形音頻是一種電子數(shù)字化的聲音,是計(jì)算機(jī)播放音頻的一種重 要格式,它存儲(chǔ)的是聲音的波形信息,當(dāng)播放波形音頻時(shí),不管 播放文件的設(shè)備是何種類(lèi)型,都會(huì)得到相似的聲音,波形音頻文 件通常 wav 作為文件擴(kuò)展名。因?yàn)椴捎貌ㄐ我纛l存儲(chǔ)電子化聲音 需要大量的存儲(chǔ)空間,因此它一般只用于短時(shí)間的聲音播放。 通過(guò)設(shè)計(jì)一個(gè)簡(jiǎn)單的波形音
2、頻播放器,了解MFC ,了解接口類(lèi)MCI。2,波形音頻播放器的功能 播放器有“打開(kāi)”,“播放”,“停止”,“關(guān)機(jī)”三個(gè)按鈕, 同時(shí)有一個(gè)狀態(tài)欄,用于顯示播放器當(dāng)前處于的狀態(tài)?!按蜷_(kāi)”按鈕用于打開(kāi)一個(gè)波形音頻文件; “播放”用于播放選中的波形音頻文件; “停止”用于暫停正在播放的音頻文件,再次點(diǎn)擊“播放”時(shí)會(huì) 從暫停出繼續(xù)播放;“關(guān)機(jī)”用于退出播放器。播放器界面如圖所示:3, 數(shù)據(jù)字典類(lèi)向?qū)?ClassWizard靜態(tài)文本Static Text按鈕 Comma nd Butt on ,4,功能列表“打開(kāi)” voidCWaverDlg:OnOpen(>“播放” voidCWaverDlg:O
3、nPlay(>“停止” voidCWaverDlg:OnStop(>“關(guān)機(jī)” voidCWaverDlg:OnExit(>5, 具體實(shí)現(xiàn)步驟,1、首先在VisualC+平臺(tái)上,選擇 File->New,新建一個(gè)名為WaveAudio.h的頭文件。代碼如下:#if!defined(WA VE_H_INCLUDED_>#define WAVE_H_INCLUDED_#include "mmsystem.h"class CWavepublic:BOOL m_bPlaying。BOOL m_bOpen。WORD m_wDeviceIDpublic:CW
4、ave(>。virtualCWave(> 。DWORD Open(CString strFileName> 。/DWORD Close(> 。DWORD Play(> 。void Stop(> 。DWORD Close(> 。#endif2、接下來(lái)再新建 WaveAudio.cpp 文件。代碼如下:#include "mmsystem.h"#include "stdafx.h"#include "afxwin.h"#include "WaveAudio.h" CWave:C
5、Wave(>m_bPlaying=FALSE 。m_bOpen=FALSE 。 m_wDeviceID=NULL 。 CWave:CWave(>Close(>。DWORD CWave:Open(CString strFileName>if(m_bOpen> Close(>。DWORD dwOpenFlag 。MCI_OPEN_PARMS mciOpenParam 。 mciOpenParam.lpstrDeviceType="WaveAudio" 。 mciOpenParam.lpstrElementName=strFileName 。
6、dwOpenFlag=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_OPEN_TYPE,(D WORD>(LPVOID>&mciOpenParam> 。if(dwOpenFlag>return dwOpenFlag 。m_wDeviceID=mciOpenParam.wDeviceID 。m_bOpen=TRUE 。dwOpenFlag=0 。MCI_SET_PARMS mciSetParam 。 mciSetParam.dwTimeFormat=MCI_FORMA T_MILLISECONDS 。 dwOp
7、enFlag=mciSendCommand(m_wDeviceID,MCI_SET,MCI_SET_TIME_FORMA T,(DWORD>(L PVOID>&mciSetParam> 。if(dwOpenFlag>return dwOpenFlag 。return 0。DWORD CWave:Play(>MCI_PLAY_PARMS mciPlayParam 。DWORD dwPlayFlag 。dwPlayFlag=mciSendCommand(m_wDeviceID,MCI_PLAY ,NULL,(DWORD>(LPVOID>&m
8、ciPlayPar am>。if(dwPlayFlag>return dwPlayFlag 。elsem_bPlaying=TRUE 。return 0。void CWave:Stop(> mciSendCommand(m_wDeviceID,MCI_STOP,NULL,NULL> 。DWORD CWave:Close(>if(m_wDeviceID>DWORD dwCloseFlag 。 mciSendCommand(m_wDeviceID,MCI_STOP,MCI_WAIT,NULL> 。 dwCloseFlag=mciSendCommand(m_
9、wDeviceID,MCI_CLOSE,NULL,NULL> 。 if(dwCloseFlag>AfxMessageBox(" 關(guān)閉時(shí)出錯(cuò) "> 。 return dwCloseFlag 。m_bOpen=FALSE 。 m_bPlaying=FALSE 。m_wDeviceID=NULL 。return 0。3、新建一個(gè)基于對(duì)話框類(lèi)的項(xiàng)目,取名為Waver。在工作區(qū)FileView中右鍵單擊 Waver,選擇“添加到項(xiàng)目”為項(xiàng)目添加WaveAudio.cpp和WaveAudio.h文件。然后在“項(xiàng)目”-> “設(shè)置”的“連接”中為 項(xiàng)目添加winmm
10、.lib。這之后,需要在文件 WaverDIg.h的頭部添加#include WaveAudio.h”。最后在 CwaverDIg類(lèi)中添加成員變量: protect:CWave m_Wave。CString m_strFileName 。4、按照要求設(shè)計(jì)對(duì)話框<IDD_WAVER_DIALOG )的界面。要求:“打開(kāi)”一按鈕一IDC_OPEN“播放”一按鈕一IDC_PLAY“停止”一按鈕一IDC_STOP“關(guān)機(jī)”一按鈕一IDC_EXIT“狀態(tài)”一靜態(tài)文本一IDC_STATIC編輯框一IDC_STATUS下矗言卵克)坯打開(kāi)播型I 1停止I固 J 251側(cè) |屁abln Q(x令muC3 H
11、5、用類(lèi)向?qū)閷?duì)話框添加控件變量IDC_OPEN m_btOpenIDC_PLAY m_btnPlayIDC_STATUS m_strStatus6、用類(lèi)向?qū)楦鱾€(gè)函數(shù)添加代碼void CWaverDlg:OnPlay(>/ TODO: Add your control notification handler code here if(m_Wave.Play(>>AfxMessageBox("播放出錯(cuò)">。 m_Wave.m_bPlaying=TRUE 。m_strStatus="正在播放"。UpdateData(FALSE&g
12、t;。void CWaverDlg:OnOpen(>/ TODO: Add your control notification handler code here CString Filter。char buf128 。DWORD dwFlag 。Filter=" 波形音頻文件 (*.WA V>|*.WA V|" 。,Filter>CFileDialog fileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY if(fileDlg.DoModal(>=IDOK>m_strFileName=fileDlg.GetPathN
13、ame(> 。 dwFlag=m_Wave.Open(m_strFileName> 。 if(dwFlag> mciGetErrorString(dwFlag,buf,strlen(buf>> AfxMessageBox(buf> 。m_btnPlay.EnableWindow(TRUE> 。 m_strStatus=m_strFileName+" 文件已經(jīng)正確打開(kāi) ." UpdateData(FALSE> 。void CWaverDlg:OnStop(>/ TODO: Add your control notifica
14、tion handler code here m_btnPlay.EnableWindow(TRUE> 。m_btnOpen.EnableWindow(TRUE> 。 if(m_Wave.m_bPlaying>m_strStatus="播放停止 "。UpdateData(FALSE> 。 m_Wave.Stop(>。void CWaverDlg:OnExit(>/ TODO: Add your control notification handler code here OnCancel(>。6、運(yùn)行結(jié)果打并1SE1 II卜趣加耐H
15、I果不是真正的Skffkfr I戶剛的Y頁(yè)簾啊的BMP【測(cè)試卷2】BMP位圖顯示程序,如下圖所示,用一個(gè)簡(jiǎn)單的SDI項(xiàng)目實(shí)現(xiàn)單擊“文件”-> “打開(kāi)”,選擇一個(gè).bmp文件,如果不是真正的 BMP文件,或者不是真彩色的BMP文件,程序都將報(bào)告有關(guān)信息。如果用戶選擇的是真彩色的BMP文件,則程序會(huì)在客戶區(qū)顯示整個(gè)圖像。需求分析:1, 項(xiàng)目背景和原因。通過(guò)編寫(xiě)圖片瀏覽器進(jìn)一步加深對(duì) VC+編程的理解2, 視頻播放器的功能界面上有“選擇圖片”、“改變圖片大小”兩個(gè)按鈕“選擇圖片”用于打開(kāi)一個(gè)圖片文件,文件格式不限;“改變圖片大小”用于擴(kuò)大或縮小圖片。 I爲(wèi)胞瞎I畫(huà)國(guó)営硒F| jAIcia$s
16、rntm矗rsj | & dAhdutOlgf選擇團(tuán)片® 調(diào)節(jié)團(tuán)片犬小匹)f-Ml2 resourcesHogIDD_ABOUTBOXIDD_CTLY2412 DL3功能列表“打開(kāi)圖片”O(jiān)n Fileope n(>“改變圖片大小”O(jiān)nVideo1x(>、OnVideo2x(>4, 具體實(shí)現(xiàn)步驟1、建立項(xiàng)目,項(xiàng)目名為Image。2、設(shè)計(jì)界面按鈕選擇圉片(E)調(diào)節(jié)酣片大小豹r”-i不I+HQ)選擇圉片(D調(diào)節(jié)曲片丈水過(guò)r 杠棄fol lz時(shí)El片迪調(diào)書(shū)國(guó)片大小匚二二is 怕十zKin'i葉單項(xiàng)目屆性3、功能列表“打開(kāi)”void CCTLY2412Dlg:
17、OnFileopen(>/ TODO: Add your command handler code herechar szFileFilter="Mp4 File(*.mp4>|*.mp4|""Mp3 File(*.mp3>|*.mp 3|""Wma File(*.wma>|*.wma|""Video File(*.dat>|*.dat|""Wave File(*.wav>|*.wav|""AVI File(*.avi>|*.avi|"
18、;"Movie File(*.mov>|*.mov|""Media File(*.mmm>|*.mmm|""Mid File(*.mid 。*,rmi>|*.mid。*.rmi|""MPEG File(*.mpeg>|*.mpeg|""All File(*.*>|*.*|"。CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY , szFileFilter > if( FileDlg.DoModal(&
19、gt; = IDOK >CString PathName = FileDlg.GetPathName(>。PathName.MakeUpper(>。 m_AMovie.SetFileName(PathName> 。放大圖片void CCTLY2412Dlg:OnVideo1x(>/ TODO: Add your command handler code herem_AMovie.Pause(>。m_AMovie.SetMovieWindowSize(1> 。m_AMovie.Run(> ??s小圖片void CCTLY2412Dlg:OnVideo
20、2x(>/ TODO: Add your command handler code here m_AMovie.Pause(>。m_AMovie.SetMovieWindowSize(2> 。 m_AMovie.Run(> 。,5,運(yùn)行結(jié)果【測(cè)試卷3】編寫(xiě)一個(gè)AVI視頻播放器程序,能夠播放AVI視頻文件?!拔募?> “打開(kāi)”菜單項(xiàng),選擇一個(gè) AVI文件,則程序在客戶區(qū)的左上角創(chuàng)建一個(gè)MClWnd 窗口,并且窗口中已該AVI文件的首幅畫(huà)面。按下 MClWnd窗口控制條中的“播放”按鈕就開(kāi)始播放該AVI文件。需求分析:1,項(xiàng)目背景和原因。目前有很多視頻播放器,例如暴
21、風(fēng)影音、迅雷看看等,這些軟件都可以很方便的播放各種格式的視頻文件。通過(guò)自行設(shè)計(jì)一個(gè)建簡(jiǎn)易播放器,使初學(xué)者了解用 vc編寫(xiě)視頻播放器的方法。2,視 頻播放器的功能編寫(xiě)一個(gè)簡(jiǎn)單的播放器,此播放器應(yīng)具有播放至少AVI格式的功能。播放器中有“文件”、“播放”、“視頻”、“音頻”、靜音”、“消除靜音”和“幫助”七個(gè)按鈕 “文件”按鈕下又有“打開(kāi)”、“關(guān)閉 ”、“退出”三個(gè)按鈕,其中 “打開(kāi)”用于打開(kāi)一個(gè)視頻文件;“關(guān)閉”用于關(guān)閉當(dāng)前的視頻; “退出”用于退出播放器?!安シ拧卑粹o下有“開(kāi)始”、“暫?!?、“停止”,其中“開(kāi)始” 用于開(kāi)始播放當(dāng)前視頻;“暫?!庇糜跁和U诓シ诺囊曨l,當(dāng)點(diǎn) 擊“開(kāi)始”時(shí)從暫停的
22、地方繼續(xù)播放;“停止”用于停止正在播放 的視頻,當(dāng)點(diǎn)擊“開(kāi)始”時(shí)又從開(kāi)頭播放?!耙曨l”下又有“原始大小”、“放大 2 倍”、“縮小 2 倍”按 鈕。點(diǎn)擊“原始大小”時(shí),播放器窗口大小不變;點(diǎn)擊“放大 2 倍”時(shí),播放器窗口放大為原來(lái)的兩倍;點(diǎn)擊“縮小 2 倍”時(shí),播 放器窗口縮小為原來(lái)的一半?!耙纛l”下有“調(diào)節(jié)音量”、“調(diào)節(jié)左右聲道平衡”?!罢{(diào)節(jié)音 量”下又有“增加”和“減小”兩個(gè)按鈕,分別用于增加音量和減 小音量; 而“調(diào)節(jié)左右聲道平衡”在此播放器中并沒(méi)有實(shí)際功能,若要實(shí)現(xiàn) 調(diào)節(jié)左右聲道平衡的功能要添加相應(yīng)的代碼,此時(shí)此刻我們的目的 是要實(shí)現(xiàn)一些簡(jiǎn)單功能就可以了,所以不必理會(huì)“調(diào)節(jié)左右聲道平
23、 衡”。“幫助”按鈕下還有個(gè)“關(guān)于播放器”的按鈕,因?yàn)椴](méi)有給其編 寫(xiě)相應(yīng)的代碼,也沒(méi)有實(shí)際功能。窗口如下:3»可4(nc-asswizard4ssB熾器甘淳時(shí)3洱黑滋加走於nT八淳時(shí)3因選MxmxlCCTLY2412D_g 甘)-YTFF* onF=eopenv 來(lái)3*onF=ecosev 心陸圧* onFi-eexifv 甘迂OnFI aysfartv awa OnFI aypausev alh* OnFI aysfopvOnVideo 1 xv 詳汁2虛onYiv 簽? 2亠<On<deo2xv 犬趟 0珥onAddv M、G onDownv“消除靜音” OnH u
24、ifu(>5, 具體實(shí)現(xiàn)步驟首先:注冊(cè)該控件在 windows “運(yùn)行”里寫(xiě)入:regsvr32 msdrm.ocx單擊確定。1、建立基于對(duì)話框的項(xiàng)目,項(xiàng)目名為 CTLY2412。IC應(yīng)用程肓導(dǎo)-歩娶J您要?jiǎng)?chuàng)建的應(yīng)用程序類(lèi)型是:廣單文檔臣1廣多重文檔Mla 10框藝產(chǎn)文檔痔看佯糸結(jié)枸支苻V)悠的資源使用的語(yǔ)言杲:|中文中國(guó)1狙PPWZCHM.DLL<上一歩 下一歩 > 丨 完感取消2、刪除IDD_PLAYER_DIALOG 對(duì)話框中的一個(gè)OK按鈕、一個(gè)Can cel按鈕和一個(gè)文本框,在對(duì)話框中插入一個(gè)菜單項(xiàng),在菜單項(xiàng)中添加子菜單,具體要求見(jiàn)表格頂層菜單項(xiàng)子菜單項(xiàng)ID號(hào)文件(&
25、amp;F>打開(kāi)(&O>ID_FILEOPEN關(guān)閉(&C>ID_FILECLOSE退出(&X>ID_FILEEXIT播放(&p>開(kāi)始(&S>ID_PLAYSTART暫停(&P>ID_PLAYPAUSE停止(&T>ID_PLAYSTOP視頻(&V>原始大?。?amp;O>ID_VIDEO1X原始大小的2倍(&D>ID_VIDEO2X音頻(&A>調(diào)節(jié)音量(&V>ID_AUDEOVOLUME調(diào)節(jié)左右聲道平衡(&B>ID_A
26、UDEOBALANCE幫助(&H>關(guān)于播放器(&A>ID_HELPABOUT3、用類(lèi)向?qū)椴藛翁砑宇?lèi)CTCY2412Dlg與對(duì)話框關(guān)聯(lián)起來(lái)。MA工 ff-lt4、在對(duì)話框中添加 ActiveMovie控件,ID為IDC_AMOVIE。如圖:Angular Giuge jiuJIivEX CgiyIidI IPIsyw C-onlrd 腳聞EC4砸*雲(yún)1罪* ZubflCCiWI CldlAft路徑:£bIbk4m CanMfl.O fnhrDngBuHan Chss CQMNSVIcwCIe 町Pdrvi亡亡舊侏(lb儲(chǔ)曲5、用類(lèi)向?qū)镮DC_AMOVIE
27、映射一個(gè)成員變量 m_AMovie6、用類(lèi)向?qū)?shí)現(xiàn)各個(gè)按鈕的功能,為“打開(kāi) ” -OnFileopen(> “ 關(guān)閉 ”-0nFileclose(> “ 退出”-On Fileexit(>“開(kāi)始 ” -OnPlaystart(> “ 暫停 ” -OnPlaypause(> “停止”-OnPlaystop(> “原始大小” OnVideo1x(> “放大 2 倍” -OnYi( “縮小2 倍” -OnVideo2x(> “增加” -OnAdd(> “減小” -OnDown(>添加代碼。void CCTLY2412Dlg:O nFileo
28、pe n(>/ TODO: Add your comma nd han dler code herechar szFileFilter="AVI File(*.avi>|*.avi|""Mp4 File(*.mp4>|*.mp4|""Mp3 File(*.mp3>|*.mp3|""Wma File(*.wma>|*.wma|""Video File(*.dat>|*.dat|""Wave File(*.wav>|*.wav |"&qu
29、ot;Movie File(*.mov>|*.mov"Media File(*.mmm>|*.m mm|""Mid File(*.mid 。*,rmi>|*.mid 。*.rmi|""MPEG File(*.mpeg>|*.mpeg |"Y, szFileFilter >。"All File(*.*>|*.* |"。CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONL if( FileDlg.DoModal(> = I
30、DOK >CString PathName = FileDlg.GetPathName(> 。PathName.MakeUpper(>。 m_AMovie.SetFileName(PathName> 。void CCTLY2412Dlg:O nFileclose(>/ TODO: Add your comma nd han dler code here m_AMovie.SetFileName(""> 。 void CCTLY2412Dlg:O nF ileexit(>/ TODO: Add your comma nd han dl
31、er code here OnCancel(>。 void CCTLY2412Dlg:O nPlaystart(>/ TODO: Add your comma nd han dler code here m_AMovie.Run(> 。SetTimer(0,20,NULL>。設(shè)置定時(shí)器void CCTLY2412Dlg:O nPlaypause(>/ TODO: Add your comma nd han dler code here m_AMovie.Pause(>。 void CCTLY2412Dlg:O nPlaystop(>/ TODO: Ad
32、d your comma nd han dler code here m_AMovie.Stop(> 。KillTimer(O>。/關(guān)掉定時(shí)器void CCTLY2412Dlg:O nVideo1x(>/ TODO: Add your comma nd han dler code herem_AMovie.Pause(> 。m_AMovie.SetMovieWi ndowSize(1> 。m_AMovie.Run(> 。 void CCTLY2412Dlg:O nVideo2x(>/ TODO: Add your comma nd han dler c
33、ode here m_AMovie.Pause(> 。m_AMovie.SetMovieWi ndowSize(2> 。 m_AMovie.Run(> 。 void CCTLY2412Dlg:O nAdd(>/ TODO: Add your comma nd han dler code here long m_valume= m_AMovie.GetVolume (> 。獲取當(dāng)前音量m_AMovie.Pause (> 。 m_AMovie.SetV olume(m_valume+200> 。II用于增加音量m_AMovie.Run (> 。 vo
34、id CCTLY2412Dlg:O nDow n(> II TODO: Add your comma nd han dler code herelong m_valume= m_AMovie.GetVolume (> 。 m_AMovie.Pause (> 。m_AMovie.SetV olume(m_valume-200> 。 /用于減小音量 m_AMovie.Run (> 。void CCTLY2412Dlg:OnQiuet(>/ TODO: Add your command handler code here m_AMovie.Pause (>
35、。m_AMovie.SetV olume(-5000> 。 m_AMovie.Run (> 。void CCTLY2412Dlg:OnHuifu(>long m_valume= m_AMovie.GetVolume (> 。 TODO: Add your command handler code here m_AMovie.Pause (> 。 m_AMovie.SetV olume(m_valume+4000> 。 m_AMovie.Run (> 。void CCTLY2412Dlg:OnYi(>/ TODO: Add your command
36、 handler code here m_AMovie.Pause(> 。m_AMovie.SetMovieWindowSize(4> 。 m_AMovie.Run(> 。5、運(yùn)行結(jié)果 <說(shuō)明:可以正常播放,只是截圖時(shí)會(huì)產(chǎn)生黑屏)J正遼翳放ao 03 / oo:« 4-.【測(cè)試卷4】設(shè)計(jì)一個(gè)瀏覽器,實(shí)現(xiàn) Web瀏覽功能。設(shè)計(jì)思想: MFC提供了一個(gè) CHtmIView類(lèi),它派 生自文檔/視圖結(jié)構(gòu),實(shí)現(xiàn)了 Web瀏覽功能。其中,最重要的方法就是 Navigate函數(shù),通 過(guò)給它指定參數(shù)就可以瀏覽指定的 Web頁(yè)。1、項(xiàng)目背景和原因。隨著互聯(lián)網(wǎng)在世界范圍的廣泛應(yīng)用
37、,網(wǎng)絡(luò)瀏覽器便是信息交流中必不可少的工具。本題目要求同學(xué)在熟練掌握VC下有關(guān)網(wǎng)絡(luò)編程理論的基礎(chǔ)上,實(shí)現(xiàn)一個(gè)能夠?yàn)g覽網(wǎng)頁(yè)的瀏覽器。2, 網(wǎng)絡(luò)瀏覽器的功能通過(guò)地址欄輸入網(wǎng)址,按回車(chē)鍵便可以訪問(wèn)互聯(lián)網(wǎng)。瀏覽網(wǎng)頁(yè)時(shí),地址欄會(huì)顯示當(dāng)前網(wǎng)頁(yè)的地址。3,數(shù)據(jù)字典類(lèi)向?qū)?ClassWizard4,功能介紹CHtmIView類(lèi)的主要功能是訪問(wèn) Web網(wǎng)站和HTML文檔。這是因?yàn)镃HtmIView 類(lèi)在 MFC 的文檔 /視圖結(jié)構(gòu)(MFC's document/view archite cture環(huán)境中,進(jìn)一步提供了 WebBrowser控件的功能,可以說(shuō) CHt mlView類(lèi)是對(duì) WebBrowser
38、控件的圭寸裝。WebBrowser 控件支持通過(guò)超鏈接和統(tǒng)一資源定位器 URL 導(dǎo)航的 Web瀏覽。使得應(yīng)用程序成了一個(gè)Web瀏覽器(web browser。要?jiǎng)?chuàng)建一個(gè)Web瀏覽器型的應(yīng)用程序,可以使用CHtmIView類(lèi)。通過(guò) MFC 應(yīng)用程序向?qū)?shí)現(xiàn)。CHtmIView 類(lèi)的成員函數(shù)獲取和設(shè)置屬性vAttributes)的成員函數(shù)1)CString GetType( cons。 v2)Iong GetLeft( const。void SetLeft( Iong nNewVaIue 。3)Iong GetTop( const。void SetTop( Iong nNewVaIue 。4)Io
39、ng GetHeight( const。void SetHeight( Iong nNewVaIue 。5)BOOL GetVisibIe( const。void SetVisibIe( BOOL bNewVaIue 。void GoBack( 。 導(dǎo)航到歷史列表的前一個(gè)條目void GoForward( 。 導(dǎo)航到歷史列表的下一個(gè)條目。void GoHome( 。 導(dǎo)航到主頁(yè),該主頁(yè)在 IE 的屬性中設(shè)置。 void GoSearch( 。導(dǎo)航到當(dāng)前搜索頁(yè)。該頁(yè)在IE的屬性中設(shè) 置。void Refresh( 。重新裝入瀏覽器當(dāng)前正在顯示的 URL 或者文 件,即刷新。void Stop(
40、。 撤銷(xiāo)任何未完成的導(dǎo)航或下載,并且停止任何動(dòng) 態(tài)的頁(yè)面元素,例如背景音樂(lè)和動(dòng)畫(huà)Navigate導(dǎo)航到由URL指定的資源。Navigate2導(dǎo)航到由URL指定的資源或者由全路徑指定的文件。PutProperty設(shè)置與所給定的對(duì)象相關(guān)的屬性的當(dāng)前值。 GetProperty返回與所給定的對(duì)象相關(guān)的屬性的當(dāng)前值。 ExecWB 執(zhí)行一個(gè)命令。LoadFromResource 在 WebBrowser控件中裝入一個(gè)資源。5、具體實(shí)現(xiàn)步驟1、利用MFC AppWizard生成應(yīng)用程序框架項(xiàng)目名為myWeb,第一步,項(xiàng)目類(lèi)型為單文檔SDI),中文語(yǔ)言支持菜單條二步和第三步使用默認(rèn)值,不需要數(shù)據(jù)庫(kù),也不提
41、供對(duì)于復(fù)合對(duì)象的支持。第四步選擇Inte汀netEXpwer ReBars工具欄的風(fēng)格,這樣就有了用來(lái)輸入網(wǎng)址的文本框F。D B五步不作仟彳可修己改 第六步停止ID_STOP應(yīng)選擇CHtmlView類(lèi)作為視圖類(lèi)三的基類(lèi)Da te2、主頁(yè)改菜單,添加用戶需要的功能條目OMEPAGE卄丿+ rn "1皆垢 rt 1打吾 W、 SPfr+iID SEARCH按照表格添加其他功能。3、在工具欄上增加新的按鈕,以便快速執(zhí)行所需的功能。在工作區(qū)中選擇ResourceView卡,選擇ToolBar,雙擊工具條控件的名字IDR_MAINFRAME ),右邊出現(xiàn)程序的工具條。4、用類(lèi)向?qū)楦鱾€(gè)功能實(shí)現(xiàn)
42、添加代碼前進(jìn)到下一個(gè)網(wǎng)頁(yè)void CMyWebView:OnFoward(> GoForward(>。退到前一個(gè)網(wǎng)頁(yè)void CMyWebView:OnBack(> GoBack(>。停止網(wǎng)頁(yè)的下載void CMyWebView:OnStop(> Stop(>。刷新當(dāng)前的網(wǎng)頁(yè)void CMyWebView:OnUpdate(> Refresh(>?;氐街黜?yè)void CMyWebView:OnHomepage(> GoHome(>。進(jìn)行搜索void CMyWebView:OnSearch(> GoSearch(>。給對(duì)話框I
43、DR_MAINFRAME 添加一個(gè)“地址:”的靜態(tài)文本,再 添加一個(gè)文本編輯框控件,ID號(hào)是IDC_ADDR,作為地址欄,提供 給用戶輸入要瀏覽的網(wǎng)站地址。R可見(jiàn)圍r組回廠幫助n)|H|r已禁用回肓制表站回在MainFrm.h文件中,添加消息處理函數(shù)的聲明:public:void OnN ew(>。在MainFrm.cpp文件中,添加該函數(shù)的實(shí)現(xiàn)代碼:void CMai nFrame:O nN ew(>CStri ng pp。獲得用戶在地址欄中輸入的 URLm_wndDlgBar.GetDlgltem(IDC_ADDR>->GetWindowText(pp>。瀏覽
44、指定的網(wǎng)頁(yè)(CMyWebView*>GetActiveView(>>->Navigate(pp>。建立事件處理函數(shù)與消息的映射在MainFrm.cpp文件中,再消息映射<MESSAGE_MAP )段中添加 自己的消息映射的宏。用 ON_COMMAND命令建立IDOK消息和 處理函數(shù)OnNew的映射關(guān)系。BEGIN_MESSAGE_MAP(CMai nFrame, CFrameWnd>/AFX_MSG_MAP(CMainFrame>ON_WM_CREATE(> /AFX_MSG_MAP ON_COMMAND(IDOK, OnNew> / 自己的消息映射宏 END_MESSAGE_MAP(>在 myWebView.h 文件的類(lèi)定義前面添加包含語(yǔ)句#include "myWebDoc.h"在 MainFrm.h 文件中,添加處理函數(shù)的聲明:public:void SetPage(LPCTSTR lpszURL>。 在 MainFrm.cpp 文件中,添加該函數(shù)的實(shí)現(xiàn)代嗎: vo
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電器廠頂崗實(shí)習(xí)報(bào)告范文
- 從數(shù)字學(xué)習(xí)到智慧學(xué)習(xí)教育技術(shù)的演進(jìn)之路
- 企業(yè)如何通過(guò)實(shí)施智能交通系統(tǒng)提升商業(yè)競(jìng)爭(zhēng)力與安全性
- 智能互動(dòng)構(gòu)建現(xiàn)代教學(xué)新模式
- 中職文化課件
- 湘西市重點(diǎn)中學(xué)2025屆物理高一第二學(xué)期期末綜合測(cè)試試題含解析
- 專(zhuān)題06 讀后續(xù)寫(xiě)校園生活類(lèi)話題(測(cè)試)原卷版-2025年高考英語(yǔ)二輪復(fù)習(xí)
- 河南省焦作市2025屆物理高一下期末達(dá)標(biāo)測(cè)試試題含解析
- 河南省項(xiàng)城三高2025年高一物理第二學(xué)期期末質(zhì)量檢測(cè)模擬試題含解析
- 教育機(jī)器人技術(shù)教學(xué)輔助的發(fā)展趨勢(shì)
- 導(dǎo)管小組護(hù)理管理手冊(cè)
- 寶鋼硅鋼廠工藝流程
- 退伙協(xié)議個(gè)體工商戶
- 中草藥種植的土壤改良技術(shù)
- 尿膿毒癥護(hù)理查房
- 安全綠十字看板(A4打?。?/a>
- 家長(zhǎng)會(huì)課件:七年級(jí)暑假家長(zhǎng)會(huì)課件
- CMK自動(dòng)計(jì)算公式表格模板
- 急性中毒知識(shí)講座課件
- 2023屆廣東省佛山市石門(mén)中學(xué)畢業(yè)升學(xué)考試模擬卷數(shù)學(xué)卷含解析
- 代際領(lǐng)導(dǎo)力-用90后思維管理90后-完整版
評(píng)論
0/150
提交評(píng)論