Visual C++網路程式設計經典案例詳解 第5章 網頁瀏覽器 製作個性化介面 如何實現收藏夾功能 新增訊息響應函式
阿新 • • 發佈:2018-12-29
使用者將網址新增到收藏夾以後
便可以直接單擊選單選單中的網址進行瀏覽
使用者單擊選單的訊息響應函式重要
首先在CMainFrame類的標頭檔案MainFrm.h 中定義一個彈出選單的訊息響應函式
程式碼如下
afx_msg void OnMenuClick(int nID); //定義響應函式
然後在訊息對映裡新增選單命令訊息巨集ON_COMMAND_RANGE
程式碼如下
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_COMMAND(ID_NEXT, OnNext) ON_COMMAND(ID_PRE, OnPre) ON_COMMAND(ID_REFRUSH, OnRefrush) ON_COMMAND(ID_VIEWRECORD, OnViewrecord) ON_BN_CLICKED(IDC_BUTTON, OnButton) ON_CBN_SELCHANGE(IDC_COM, OnSelchangeCom) ON_COMMAND(ID_ADDNETADDRES, OnAddnetaddres) ON_COMMAND(1,i,OnMenuClick) //選單訊息命令巨集 //}}AFX_MSG_MAP END_MESSAGE_MAP()
訊息巨集ON_COMMAND_RANGE的作用是當用戶操作一個ID範圍內的選單時
呼叫同一個訊息響應函式進行處理
該函式的引數表示當前被使用者單擊選單的ID號
函式GetMenuString()通過ID號可以獲取該選單上的文字
如果獲取成功,
則呼叫CHtmlView類的函式Navigate2()瀏覽網頁
具體程式碼如下
void CMainFrame::OnMenuClick(int nID) { menu.GetMenuString(nID,menustr,MF_SYCOMMAND); //獲取瀏覽網頁 (CHTML1View*)GetActiveView()->Navigate2(menustr,NULL,NULL); //呼叫函式瀏覽網頁。 }
上述程式碼實現的網址收藏夾的功能
使用者可以根據程式碼擴充套件其功能
例如將網址寫入檔案,儲存在工作目錄下
待程式啟動時讀取檔案中的資料
這樣
使用者儲存的資料不易丟失,
即使程式發生異常,
使用者也可以從目錄下直接開啟檔案檢視