11.4.2 使用浏览器
用户在仿QQ实例中,可以使用两种方法调用网页浏览器浏览网页,分别是使用第5章中设计的实例程序和使用Windows IE浏览网页。由于在程序中,调用前者实现浏览网页的方法与前一节中调用邮件收发器的方法相同。所以在本节中,主要向用户讲解第二种实现方法。
(1)用户在实例工程中添加一个用于指定网页地址的对话框,并为其关联新类名CNet。然后,再在实例对话框类中定义CNet类的实例对象。代码如下:
- #include "Net.h" //包含头文件
- class CQQDlg : public CDialog
- {
- public:
- CNet net; //定义网页地址设置对话框对象
- ... //省略部分代码
- }
(2)用户可以在"QQ网页"按钮的消息响应函数中,弹出网页地址对话框。代码如下:
- void CQQDlg::OnNet()
- {
- net.DoModal( ); //弹出网页地址设置对话框
- }
(3)保存、编译并运行该程序,当单击"QQ网页"按钮时,程序会弹出网页地址设置对话框,如图11.31所示。
|
| 图11.31 弹出网页地址设置对话框 |
用户在该对话框中输入网页地址后,单击OK按钮便可以打开IE浏览浏览相关的网页了。代码如下:
- void CNet::OnOK()
//"OK"按钮消息响应函数 - {
- CString netadd,str;
//定义字符串变量 - GetDlgItem(IDC_EDIT1)->GetWindowText(netadd);
//获取用户输入的网页地址 - if(netadd.GetLength()==0)
//判断输入是否为空 - {
- MessageBox("网页地址不能为空!");
//弹出消息框 - }
- else
- {
- if(netadd.Find("www")!=-1)
//判断用户的输入是否正确 - {
- ShellExecute(NULL,"open",netadd,NULL,NULL,SW_SHOW);
-
//调用IE浏览器浏览网页 - }
- else
- {
- str+="www.";
//添加字符串 - str+=netadd;
- ShellExecute(NULL,"open",str,NULL,NULL,SW_SHOW);
- }
- ::SendMessage(this->m_hWnd,WM_CLOSE,0,0);
//关闭该对话框 - }
- }
在代码中,用户首先判断输入是否为空。若不为空,则验证输入的网址是否符合规范。否则,提示用户网页地址不能为空。网址验证成功之后,调用IE浏览器浏览相应的网页。