版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)題目:Web瀏覽器設(shè)計(jì)成員姓名:班 級:指導(dǎo)教師:日 期: 20012 年 6 月11目錄1、系統(tǒng)分析 31.1 系統(tǒng)需求 31.2功能要求31.3 運(yùn)行環(huán)境 31.4 開發(fā)工具 32、概要設(shè)計(jì) 42.1 基本設(shè)計(jì)概念 42.2 軟件設(shè)計(jì)層次圖 53、詳細(xì)設(shè)計(jì) 63.1 web 瀏覽器基本功能的實(shí)現(xiàn) 63.2 收藏夾功能設(shè)計(jì) 103.3 歷史記錄功能設(shè)計(jì) 133.4 抓圖工具設(shè)計(jì) 154、系統(tǒng)運(yùn)行 . . .255、設(shè)計(jì)總結(jié) 29參考文獻(xiàn) 301、系統(tǒng)分析1.1 系統(tǒng)需求瀏覽器是指可以顯示網(wǎng)頁服務(wù)器或者文件系統(tǒng)的HTML文件內(nèi)容,并讓用戶與這些文件交互的一種軟件。網(wǎng)頁瀏覽器主
2、要通過HTTP協(xié)議與網(wǎng)頁服務(wù)器交互并獲取網(wǎng)頁,這些 網(wǎng)頁由URL指定,文件格式通常為 HTML并由MIME在HTTP協(xié)議中指明。一個(gè)網(wǎng)頁中可 以包括多個(gè)文檔,每個(gè)文檔都是分別從服務(wù)器獲取的。在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們 對網(wǎng)絡(luò)的依賴越來越多,越來越離不開網(wǎng)絡(luò),同時(shí)也越來越離不開瀏覽器,人們利用瀏 覽器可以查看很多東西,上淘寶,需要瀏覽器,上百度搜索東西,需要瀏覽器,打開網(wǎng) 站網(wǎng)址,需要瀏覽器。由此瀏覽器的種類也越來越多,如 IE 瀏覽器、谷歌瀏覽器、 360 瀏覽器、遨游瀏覽器等等。因此,瀏覽器對于人們的生活起著舉足輕重的作用,瀏覽器 的作用范圍將不斷擴(kuò)大,人們的生活將離不開瀏覽器的使用。1.
3、2 功能要求使用ChtmIView類來實(shí)現(xiàn)一個(gè)應(yīng)用程序,使之具有 Web瀏覽器的功能,包括瀏覽網(wǎng)頁、 前進(jìn)、后退、返回主頁、刷新、搜索、收藏夾、歷史記錄、抓圖、刪除等功能。1.3 運(yùn)行環(huán)境本系統(tǒng)基于 Windows平臺設(shè)計(jì),適用于 Windows系列的系統(tǒng),如流行的 Windows XP、Win dows Vista 等。1.4 開發(fā)工具:VC+6.0C程序開發(fā)軟件;2、概要設(shè)計(jì)2.1基本設(shè)計(jì)概念利用已有的HTTF控制、HTML解釋器和HTML執(zhí)行器,通過MFC提供的CHtmIView類 實(shí)現(xiàn)的一個(gè)Windows下的多功能的瀏覽器。該瀏覽器的功能包括:WEB占點(diǎn)瀏覽、本地和網(wǎng)絡(luò)的文件系統(tǒng)的瀏覽
4、、前進(jìn)、后退、 返回主頁、刷新、搜索、歷史記錄的維護(hù)、IE收藏夾功能和設(shè)置桌面快捷方式功能等。2. 2軟件設(shè)計(jì)層次圖2.2.1 系統(tǒng)流程圖:當(dāng)用戶登錄此簡易瀏覽器時(shí),需要在地址欄輸入需要搜索的內(nèi)容的網(wǎng)址,當(dāng)輸入網(wǎng)址后,該瀏覽器會鏈接到相應(yīng)的 能。URL地址,實(shí)現(xiàn)頁面的下載,并顯示頁面,從而實(shí)現(xiàn)該簡易瀏覽器連接網(wǎng)絡(luò)的功222 功能結(jié)構(gòu)圖:該程序的設(shè)計(jì)主要分 5部分。首先是登錄界面的實(shí)現(xiàn),其中要創(chuàng)建按鈕,創(chuàng)建菜單欄及下拉菜單的實(shí)現(xiàn);第二部分要實(shí)現(xiàn)各按鈕的具體的功能包括在其中設(shè)置監(jiān)聽器,實(shí)現(xiàn)對按鈕動作的監(jiān)聽及響應(yīng);第三部分用于對地址欄輸入內(nèi)容格式的設(shè)定包括如何處理異常等;第四部分實(shí)現(xiàn)頁面的下載;第
5、五部分用于實(shí)現(xiàn)頁面的顯示。具體的功能結(jié)構(gòu)圖如下:3、詳細(xì)設(shè)計(jì)3.1 web瀏覽器基本功能(前進(jìn)、后退、停止、刷新、搜索、主頁)的實(shí)現(xiàn):3.1.1 利用MFC AppWizard生成應(yīng)用程序框架創(chuàng)建工程名為HtmIView。第一步,選擇工程類型為單文檔(SDI),中文語言支持。第二步和第三步使用默認(rèn)值,不需要數(shù)據(jù)庫,也不提供對于復(fù)合對象的支持;第四步選擇In ternet Explorer ReBars工具欄的風(fēng)格,這樣就有了用來輸入網(wǎng)址的文本框;第五步不做任何修改;第六步選擇 CHtmlView類作為視圖類的基類。生成工程框架包含 4個(gè)類。(1)應(yīng)用程序類:CHtmIViewApp 對應(yīng) Ht
6、mIView.h 和 HtmIView.cpp 文件。(2) 框架類:CMai nF rame 對應(yīng) Mai nFrm.h 和 Mai nF rm.cpp 文件。(3)文檔類:HtmIViewDoc,對應(yīng) HtmIViewDoc.h 和 HtmIViewDoc.cpp 文件。(4)HtmIView 類:CHtmIViewView,對應(yīng) CHtmIViewView.h 和 CHtmIViewView.cpp 文件。此時(shí)編譯運(yùn)行,程序已經(jīng)具有基本的 Web瀏覽功能,能自動鏈接到微軟公司的網(wǎng)站。3.1.2 修改菜單在工作區(qū)中選擇“ ResourceView”選項(xiàng)卡,選擇 Menu雙擊菜單控件的名字(
7、IDR_MAINFRAME右邊出現(xiàn)程序的菜單。選擇菜單中的“查看”命令,已經(jīng)有了“工具欄”和“狀態(tài)欄”兩個(gè)條目,雙擊下面的空框,彈出設(shè)置菜單條目屬性對話框,按照表添加菜單項(xiàng):菜單條目名稱(Caption )ID號前進(jìn)ID FOWARD后退ID BACK停止ID STOP刷新ID REFRESH主頁ID HOME搜索ID SEARCH3.1.3 修改工具欄:在工作區(qū)中選擇“ ReaourcecView”選項(xiàng)卡,選擇 ToolBar,雙擊工具條控件的名字(IDR_MAINFRAME右邊出現(xiàn)程序的工具條。添加如圖的新的按鈕圖樣。他們的ID號與相應(yīng)的菜單條目相同。使他們的ID號與相應(yīng)的菜單條目的ID號
8、相同。 旨日需電1O嘗覽 3 今 2 GetWi ndowText(sWebAddress);/瀏覽相應(yīng)的網(wǎng)頁(CHtmlView *)GetActiveView()-Navigate(sWebAddress);在Ma in Frm.cpp的文件中,在消息映射(MESSAGE_MA段中添加自己的消息映射宏。ON_COMMAND(IDOK,OnInputAddres;s)3.1.7 解決單擊超級鏈接時(shí)地址欄的同步問題:利用 CHtmlView 類的事件處理函數(shù),當(dāng)網(wǎng)頁下載完成,會觸發(fā) OnDocumentComplete()函數(shù),該函數(shù)的參數(shù)就是所下載網(wǎng)頁的 URL可以利用此函數(shù)對地址欄進(jìn)行設(shè)置
9、,添 加以下代碼。 在 MainFrm.h 文件中,添加處理函數(shù)的聲明。public:void SetURL(LPCTSTR lpszURL) ; 在 MainFrm.cpp 文件中,添加該函數(shù)的實(shí)現(xiàn)代碼。void CMainFrame:SetURL(LPCTSTR lpszURL)m_wndDlgBar.GetDlgItem(IDC_EDIT_ADDRESS)-SetWindowText(lpszURL); m_wndDlgBar.GetDlgItem(IDC_shortcutname)-SetWindowText(lpszURL); 使用類 向?qū)?添加 事件 處理 函數(shù) 。用 類向 導(dǎo)為
10、應(yīng)用 程序的 CHtmlViewView 類 添加On Docume ntComplete(LPCTSTR IpszUR事件處理函數(shù),并在 myWeb16View.cpp 文件 中添加它的實(shí)現(xiàn)代碼。void CHtmlViewView:OnDocumentComplete(LPCTSTR lpszURL)/ 每次當(dāng)前頁面改變,更新地址欄的內(nèi)容和窗口的標(biāo)題(CMainFrame *)GetParentFrame()-SetURL(lpszURL); GetDocument()-SetTitle(lpszURL);CHtmlView:OnDocumentComplete(lpszURL);3.2收
11、藏夾功能設(shè)計(jì):3.2.1.修改菜單:在菜單中加入“收藏夾”欄。哀忖田 卑8托堂菩加 磅助 l娠妄j &)控制(M)歷史建錄制徐L.3.2.2. 創(chuàng)建“收藏夾”:在主框架類的創(chuàng)建函數(shù):On Create(LPCREATESTRUCT IpCreateStruct)實(shí)現(xiàn)代碼中 添加如下代碼(與菜單中“收藏夾”子菜單相對應(yīng),同時(shí)與 IE瀏覽器的注冊表相 連):/生成“我的收藏夾”子菜單TCHARszMAX_PA TH; 260TCHARszPathMAX_PATH; 260HKEYhKey;DWORDdwSize;CMe nu*pMe nu;/開始消去存在的菜單pMe nu = GetMe nu()
12、-GetSubMe nu(4);while(pMe nu-DeleteMe nu(0, MF_BYPOSITION);/0X00000400L從注冊表中找到“我的收藏夾的位置”,然后讀寫注冊表if(RegOpe nKey(HKEY_CURRENT_USER,_T(SoftwareMicrosoftWindowsWCurrentV ersionWExplorerWUser Shell Folders), &hKey) != ERROR_SUCCESS)TRACE0(Favorites folder not foundn);return 0;dwSize = sizeof(sz);RegQuery
13、ValueEx(hKey, _T(Favorites), NULL, NULL, (LPBYTE)s z, &dwSize); ExpandEnvironmentStrings(sz, szPath, MAX_PA TH);RegCloseKey(hKey);/添加我的收藏菜單項(xiàng)BuildFavoritesMe nu(szPath, 0, pMenu);3.2.3. 在主框架類 CMainFrame中添加 BuildFavoritesMenu() 函數(shù)實(shí)現(xiàn)收藏夾的收藏功厶匕能:a.在 MainFrm.h 中聲明 int BuildFavoritesMenu(LPCTSTR pszPath, i
14、nt nStartPos, CMenu *pMenu) 函數(shù)實(shí)現(xiàn)添加我的收藏菜單項(xiàng);b在Mai nF rm.cpp中實(shí)現(xiàn)BuildFavoritesMe nu()的功能,具體實(shí)現(xiàn)代碼如下:int CMainFrame:BuildFavoritesMenu(LPCTSTR pszPath, int nStartPos, CMenu *pMenu)CString strPath(pszPath);CString strPath2;CString str; WIN32_FIND_DA TA wfd;HANDLEinth; int nPos; int nEndPos; nNewEndPos;intTC
15、HARCStringArray CStringArrayCMenu*nLastDir;buf2048;astrFavorites; astrDirs;pSubMenu;/ 確定有 字符if(strPathstrPath.GetLength() - 1 != _T() strPath += _T();strPath2 = strPath; strPath += *.*;/ 首先掃描 .URL 然后掃描子目錄 h = FindFirstFile(strPath, &wfd);if(h != INV ALID_HANDLE_V ALUE) nEndPos = nStartPos;doif(wfd.d
16、wFileAttributes&(FILE_A TTRIBUTE_DIRECTORY|FILE_A TTRIBUTE_HIDDEN|FILE_A TTRIBUTE_SYSTEM)=0)str = wfd.cFileName;if(str.Right(4) = _T(.url)/ an .URL file is formatted just like an .INI file, so we can/ use GetPrivateProfileString() to get the information we want:GetPrivateProfileString(_T(InternetSho
17、rtcut), _T(URL), _T(), buf, 2048, strPath2 + str);str = str.Left(str.GetLength() - 4);/ scan through the array and perform an insertion sort/ to make sure the menu ends up in alphabetic order for(nPos = nStartPos ; nPos nEndPos ; +nPos)if(str.CompareNoCase(astrFavoritesnPos) 0)break;astrFavorites.In
18、sertAt(nPos, str); m_astrFavoriteURLs.InsertAt(nPos, buf);+nEndPos; while(FindNextFile(h, &wfd);FindClose(h);/ Now add these items to the menu for(nPos = nStartPos ; nPos AppendMenu(MF_STRING | MF_ENABLED, 0xe00 + nPos, astrFavoritesnPos);/ now that weve got all the .URL files, check the subdirector
19、ies for more nLastDir = 0;h = FindFirstFile(strPath, &wfd);ASSERT(h != INV ALID_HANDLE_V ALUE);doif(wfd.dwFileAttributes & FILE_A TTRIBUTE_DIRECTORY)/ ignore the current and parent directory entries if(lstrcmp(wfd.cFileName, _T(.) = 0 | lstrcmp(wfd.cFileName, _T(.) = 0) continue;for(nPos = 0 ; nPos
20、0) break;pSubMenu = new CMenu; pSubMenu-CreatePopupMenu();/ call this function recursively.nNewEndPos = BuildFavoritesMenu(strPath2 + wfd.cFileName, nEndPos, pSubMenu); if(nNewEndPos != nEndPos)/ only intert a submenu if there are in fact .URL files in the subdirectory nEndPos = nNewEndPos;pMenu-Ins
21、ertMenu(nPos, MF_BYPOSITION | MF_POPUP | MF_STRING , (UINT)pSubMenu-m_hMenu, wfd.cFileName);pSubMenu-Detach(); astrDirs.InsertAt(nPos, wfd.cFileName);+nLastDir;delete pSubMe nu; while(Fi ndNextFile(h, &wfd);Fin dClose(h);retur n nEn dPos;3.24 在Mai nF rm.h中聲明函數(shù)void OnF avorite(UINT n ID)實(shí)現(xiàn)當(dāng)在收藏夾中單擊相應(yīng)的
22、網(wǎng)址時(shí),將該網(wǎng)址在瀏覽器中顯示;a在 Mai nFrm.cpp 中的消息映射表中添加ON_COMMAND_RANGE(OxeOO, 0xfff, On Favorite)消息響應(yīng);b.在MainFrm.cpp中實(shí)現(xiàn) OnFavorite(UINT nID)的功能,具體代碼如下:void CMai nF rame:O nFavorite(UINT nID)(CHtmlViewView*)GetActiveView()-Navigate2(m_astrFavoriteURLs nID-OxeOO, 0, NULL);3.3.歷史記錄功能設(shè)計(jì):(1) .修改菜單,在菜單中加入“歷史記錄”欄,將ID號
23、設(shè)為:ID_OLDLOGINS 。文件舊鎘昨墮期旬固收按刪仙焉田薜皿革應(yīng)圖此障匚二Menu Item Properties叵斗3 General Exlciiiled Styles |(2) .在 HtmIViewView.h 中添加歷史記錄處理函數(shù)afx_msg voidOnOldlogins(), 并在HtmlView View.cpp中實(shí)現(xiàn)該功能,代碼如下:void CHtmlViewView:O nOldlogi ns() /歷史記錄(CMai nFrame *)GetPare ntFrame()-HistorySca n();(3) .在CMainFrame類中添加函數(shù) Histor
24、yScan()實(shí)現(xiàn)將最近登錄網(wǎng)址添加到“歷史記錄”子菜單中。 具體代碼如下:int CMai nFrame:HistorySca n()char buffer256;/定義一個(gè)流式文件;ifstream cfile(History.txt);if (!cfile.is_open()AfxMessageBox(_T( 文件打開失??! );/ 得到“歷史記錄”子菜單的句柄; pMenu1 = GetMenu()-GetSubMenu(6); while(pMenu1-DeleteMenu(0, MF_BYPOSITION);/0X00000400L while(!cfile.eof()/獲取一個(gè)歷
25、史記錄網(wǎng)址; cfile.getline(buffer,100);if (buffer = NULL)continue;/將獲取的網(wǎng)址添加到歷史記錄鏈表中; m_astrHistoryURLs.InsertAt(m_number,buffer); /將網(wǎng)址添加到歷史記錄子菜單內(nèi);pMenu1-AppendMenu(MF_STRING | MF_ENABLED, 0x001+m_number+ , buffer); return 1;(4) .在 CMainFrame 類中添加函數(shù) HistoryScanSave() ,實(shí)現(xiàn)將歷史記錄保存到 History.txt 文件中;具 體代碼如下:voi
26、d CMainFrame:HistoryScanSave()if ( file.Open(_T(History.txt),CFile:modeCreate|CFile:modeWrite) )/由文件末尾開始寫; file.SeekToEnd( ); file.Write(addr.GetBuffer(addr.GetLength()+1),addr.GetLength()+1); addr.ReleaseBuffer();file.Close();else AfxMessageBox(_T( 文件打開失敗! );(5) . 在 MainFrm.h 中聲明函數(shù) void OnHistory(U
27、INT nID) 實(shí)現(xiàn)當(dāng)在歷史記錄菜單中單擊相應(yīng)的網(wǎng)址 時(shí),將該網(wǎng)址在瀏覽器中顯示;a在 MainFrm.cpp 中的消息映射表中添加ON_COMMAND_RANGE(0x001, Oxdfe, OnHistory) 消息響應(yīng);b.在MainFrm.cpp中實(shí)現(xiàn) OnHistory(UINT nID)的功能,具體代碼如下:void CMainFrame:OnHistory(UINT nID)/當(dāng)單擊歷史記錄內(nèi)某一網(wǎng)址時(shí),將該網(wǎng)址在瀏覽器中顯示;(CHtmlViewView*)GetActiveView()-Navigate2(m_astrHistoryURLs nlD-OxOO1,O, NUL
28、L);(6) .在Ma in Frm.cpp中的SetURL()函數(shù)中添加代碼實(shí)現(xiàn)將當(dāng)前網(wǎng)址添加到歷史記錄菜單中,具體代碼如下:將地址欄內(nèi)的地址存起來,作為歷史記錄;addr += lpszURL;addr += rn;HistorySca nSave();3.4抓圖工具的實(shí)現(xiàn):3.4.1在以設(shè)計(jì)好的Web瀏覽器中的菜單欄里添加一個(gè)“屏幕截圖”,下設(shè)一個(gè)截圖功能3.4.2為它添加消息響應(yīng)函數(shù)void CHtmlViewView:O nScree nsn ap()/ TODO: Add your comma nd han dler code here/屏幕截圖 消息響應(yīng)函數(shù)*SetCapture
29、(); /啟動全屏捕捉m_bStartS napWi ndow = TRUE;m_Description.SetWindowText(”正在進(jìn)行抓圖,);ShowWi ndow(SW_MINIMIZE);m_nTimerID = SetTimer(1,300,NULL);啟動定時(shí)器,開始抓取圖像3.4.3 注冊系統(tǒng)熱鍵,用來抓圖 :RegisterHotKey(GetSafeHwnd(),WM_SNAPHOTKEY,NULL,VK_F3);3.4.4 在 HtmlViewView 類中添加函數(shù) toClipboard 實(shí)現(xiàn)將指定窗口復(fù)制到系統(tǒng)剪 切板,當(dāng)中用到了雙緩沖技術(shù):void CHtml
30、ViewView:toClipboard(CWnd *wnd, BOOL FullWnd)CDC *dc; if(FullWnd)dc = new CWindowDC(wnd);/ 抓取整個(gè)窗口 elsedc = new CClientDC(wnd);/ 抓取客戶區(qū)域 CDC memDC;memDC.CreateCompatibleDC(dc);CBitmap bm; CRect r; if(FullWnd)wnd-GetWindowRect(&r); elsewnd-GetClientRect(&r);CString s; wnd-GetWindowText(s); CSize sz(r.W
31、idth(),r.Height(); bm.CreateCompatibleBitmap(dc,sz.cx,sz.cy); CBitmap * oldbm = memDC.SelectObject(&bm); memDC.BitBlt(0,0,sz.cx,sz.cy,dc,0,0,SRCCOPY); / 直接調(diào)用 OpenClipboard(), 而不用 wnd-CetParent()-OpenClipboard(); wnd-OpenClipboard();:EmptyClipboard(); :SetClipboardData(CF_BITMAP,bm.m_hObject); CloseC
32、lipboard();/ 回復(fù)原始環(huán)境 memDC.SelectObject(oldbm); bm.Detach();delete dc;3.4.5 在 HtmlViewView 類中添加函數(shù) CaptureWindowToClipboard 實(shí)現(xiàn)抓取圖像到 系統(tǒng)剪切板:bool CHtmlViewView:CaptureWindowToClipboard(HWNDhwndToCapture)bool bRet = FALSE;/如果“ hwndToCapture”是有效窗口的話,將其復(fù)制到系統(tǒng)剪切板中if(hwndToCapture)&(:IsWindow(hwndToCapture)bRe
33、t = TRUE; toClipboard(CWnd *)CWnd:FromHandle(hwndToCapture),TRUE);return bRet;3.4.6 在 HtmlViewView 類中添加函數(shù) HighlightFoundWindow 實(shí)現(xiàn)高度顯示選中的 圖像窗口:long CHtmlViewView:HighlightFoundWindow(HWND hwndFoundWindow) HDC hWindowDC = NULL;HGDIOBJ hPrevPen = NULL;HGDIOBJ hPrevBrush = NULL;RECT rect;long IRet = 0;H
34、PEN hRectanglePen = CreatePen(PS_SOLID,3,RGB(255,0,0); :GetWindowRect(hwndFoundWindow,&rect);/ 獲取選中窗口的 DC hWindowDC = :GetWindowDC(hwndFoundWindow); if(hWindowDC)/ 選取自定義的高亮矩形畫筆 hPrevPen = SelectObject(hWindowDC,hRectanglePen);/ 選取自定義的高亮畫刷 hPrevBrush = SelectObject(hWindowDC,GetStockObject(HOLLOW_BRU
35、SH);/ 再選中的圖像窗口四周繪制高亮矩形Rectangle(hWindowDC,0,0,rect.right-rect.left,rect.bottom-rect. top);/ 恢復(fù)原始畫筆畫刷SelectObject(hWindowDC,hPrevPen); SelectObject(hWindowDC,hPrevBrush);/ 釋放 DC :ReleaseDC(hwndFoundWindow,hWindowDC);/ 刪除創(chuàng)建的矩形畫筆 if(hRectanglePen) DeleteObject(hRectanglePen); return IRet;3.4.7 在 HtmlVi
36、ewView 類中添加函數(shù) RefreshWindow 實(shí)現(xiàn)刷新選中的圖像窗口, 消除高度顯示:long CHtmlViewView:RefreshWindow(HWND hwndWindow)long IRet = 0;:InvalidateRect(hwndWindow,NULL,TRUE); :UpdateWindow(hwndWindow);:RedrawWindow(hwndWindow,NULL,NULL,RDW_FRAME|RDW_INVALIDATE|R DW_UPDATENOW|RDW_ALLCHILDREN);return IRet;3.4.8 在 HtmlViewView
37、 類中添加函數(shù) CheckWindowValidity 實(shí)現(xiàn)檢驗(yàn)選中窗口的 有效性:bool CHtmlViewView:CheckWindowValidity(HWND hwndToCheck) HWND hwndTemp = NULL;bool bRet = TRUE;/ 不能為空if(hwndToCheck = NULL)bRet = FALSE; return bRet;/ 必須是一個(gè)有效窗口 if(IsWindow(hwndToCheck) = FALSE) bRet = FALSE; return bRet;/ 確定他不是先前選中的窗口 if(hwndToCheck = m_hwn
38、dFoundWindow) bRet = FALSE; return bRet;/ 不能是程序主窗口if(hwndToCheck = this-m_hWnd)bRet = FALSE; return bRet;/ 不能是程序中的子窗口hwndTemp =:GetParent(hwndToCheck);if(hwndTemp = this-m_hWnd)bRet = FALSE; return bRet;return bRet;3.4.9 添加熱鍵消息處理函數(shù) OnHotKey, 先在 .h 文件的消息映射區(qū)手動添加一 個(gè)消息處理函數(shù)聲明:afx_msg LRESULT On HotKey(WP
39、ARAM wPara m,L PARAM IPara如圖:protected:/ AFX_MS6( CNtmlUieuiUiew)afxafxafKafxafxafxafxaFxafxmsg nsgn)5g msg msg msgn)5g msg msguoid void uoid void uoid uoid uoid uoid uoidOnBackO;DnForward();OnHoine(); OnStopO;OnRefreshO; DnSearch();DnOldloginsO;OnSci-eensnapO : OnTiner(UlNT nIDEvent);卄乂_11刃 LRESULT
40、神時(shí)日叭LPARAM 叩時(shí)測);afx_nsg void OnDestroyf): /JJftFXMSCDECLARE MESSAGE MAPO3410然后添加消息函數(shù)實(shí)現(xiàn):32LRESULT CHtnLViewUiew: :OnHotKej|(UPAHAM uParan, LPARAH I Par an)if(uParam = WH SNAPHOIKEV)當(dāng)正在抓取操作時(shí)操作為假黑黜話ifCn bStartSnapUinddu)OndeleteHistory();5) 清除密碼歷史紀(jì)錄void CMyWeb16View:OnDelHistoryPassword() / 清除密碼歷史記錄 SHDeleteKey(HKEY_CURRENT_USER,_T(SoftwareMicrosoftInternet ExplorerIntelliForms);6) 清空收藏夾:void CHtmlViewView:OnDeletefavorite()ExplorerUser Shell Folders);3.6. 桌面快捷方式設(shè)計(jì):3.6.1. 添加按鈕:修改對話框控件(IDR_MAINFRAM)添加按鈕“創(chuàng)建快捷方式”與編輯框,編輯框 ID 號為:IDC_shortcut name ;按鈕 ID 號為:IDC_SHORTCUT,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西京學(xué)院《景觀小品設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《電力電子技術(shù)》2022-2023學(xué)年期末試卷
- 西華師范大學(xué)《篆刻技法》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《影視敘事藝術(shù)研究》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《西方行政學(xué)說史》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《區(qū)域分析方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《教師書寫與板書設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 版油氣開發(fā)專業(yè)危害因素辨識與風(fēng)險(xiǎn)防控?專項(xiàng)測試題及答案
- 交通運(yùn)輸綜合執(zhí)法(單多選)復(fù)習(xí)試題及答案
- 2024年專用設(shè)備行業(yè)政策分析:專用設(shè)備行業(yè)標(biāo)準(zhǔn)保障行業(yè)穩(wěn)定發(fā)展
- 高中美術(shù)-建筑藝術(shù)
- 國企職務(wù)犯罪預(yù)防
- 整本書閱讀教學(xué)策略
- 《大學(xué)生與誠信》課件
- 國內(nèi)電控柴油機(jī)技術(shù)發(fā)展概況
- 馬克思主義與社會科學(xué)方法論(研究生政治課程)復(fù)習(xí)重點(diǎn)
- 《女性假兩性畸形》課件
- 第四代住宅百科知識講座
- 企業(yè)組織架構(gòu)調(diào)整方案
- 政務(wù)短視頻運(yùn)營方案書
- 化工企業(yè)消防安全知識培訓(xùn)
評論
0/150
提交評論