作者:重庆 黄文平
浏览器是我们上网时必须使用的软件,我们常用的浏览器有IE、Netscape等。面对它们,我们往往会感叹如此强大功能的软件是如何编写出来的呢?的确,要编写一个功能完善的浏览器是很不容易的。但是,利用当今的一些面向对象开发工具来编写一个简易的浏览器以实现它的主要功能却十分容易。用VC++,一支烟的功夫就能办到!不信,请跟我来。
实现原理:
ActiveX控件可以看作是OLE容器中使用的进程内服务器,但是,只有在支持ActiveX控件的OLE容器中使用它,才能发挥其所有的功能。而VC++ 6.0的MFC创建的OLE容器完全支持ActiveX控件,所以它可以使用控件的属性和方法来操作ActiveX控件,同时又能以事件的形式接收Active事件的通知。
具体方法:
1.首先在VC++ 6.0的主窗口中选择菜单“File/New”,新建一个工程,使用“MFC AppWizard(exe)”向导,工程名为“SimpleIE”,然后单击“OK”按钮。
2.接下来会有6个向导步骤。第一步选择“Single document”(单文档界面)支持,语言选择“中文”,其余按默认值,单击“Next”按钮。
3.在接下来的4个步骤(即:Step 2 of 6到Step 5 of 6)中,一律保持默认值,直接单击“Next”按钮进入到下一步即可。
4.在第6步(即:Step 6 of 6)中,请在类列表中选中“CSimpleIEView”类,再从“Base class”下拉列表框中选择“CFormView”,这表示可以在程序界面的窗口中加入控件。最后单击“Finish”按钮,直到系统生成该工程所必需的文件结束,此时,也就完成了该程序的基本框架。
5.在VC++ 6.0的主窗口左边选择资源选项卡,双击其中的Dialog文件夹,再双击其下的IDD_SimpleIE_FORM项,则此对话框出现在对话框编辑器中。删除对话框上的静态文本,然后在对话框上单击鼠标右键,从弹出的快捷菜单中选择“Insert ActiveX Control”命令,在弹出的“Select ActiveX Control”对话框中,从列表框中选择“Microsoft Web浏览器”控件,单击“OK”按钮,将该控件加入到对话框中。进入ClassWizard,选择Member Variable选项卡,然后选择Class Name列表框中的CSimpleIEView类,在ID列表中找到ID_EXPLORER1,为它增加一个成员变量“m_SimpleIE”(注意:系统提示在增加控件后,保存工程中的所有文件)。
6.再在对话框上加入三个控件,静态文本“地址:”、EDIT_BOX控件(为其添加成员变量m_URL)、一个按 ㄔ谄涫粜远曰翱蛑校?獵aption属性设为“链接(&L)”,选择“Styles”选项卡,将“Default button”复选框选中)。此时的对话框外观如图1所示。
7.进入ClassWizard,选择Message Maps选项卡,再在Object Ids列表框中选择IDC_BUTTON1,选择Message列表框中的BN_CLICKED。单击“Add Function”按钮,增加一个函数,使用系统的默认函数名“OnButton1”,单击“OK”。点击“Edit Code”按钮,为此函数加入如下代码(注意字母的大小写):
UpdateData(true);
m_SimpleIE.Navigate(m_URL,NULL, NULL, NULL, NULL);
8.保存工程,编译并运行。在编辑框中直接输入网址并回车,你熟悉的网页将出现在你的面前,如图2所示。