Visual C++网络编程经典案例详解 第5章 网页浏览器 制作个性化界面 如何实现收藏夹功能 添加消息响应函数

用户将网址添加到收藏夹以后
便可以直接单击菜单菜单中的网址进行浏览
用户单击菜单的消息响应函数重要

首先在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);
	//调用函数浏览网页。
}

上述代码实现的网址收藏夹的功能
用户可以根据代码扩展其功能
例如将网址写入文件,保存在工作目录下
待程序启动时读取文件中的数据
这样
用户保存的数据不易丢失,
即使程序发生异常,
用户也可以从目录下直接打开文件查看

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/85009318