C++B网络编程经验几则

发表于:2007-07-04来源:作者:点击数: 标签:
骆名群 一 、用C++Builder设计自己的浏览器 C++Builder5提供了一个浏览器控件CppWebBrowser,它位于inte .net 控件栏,主要方法有: Navigate函数,用于浏览给定的url的资源; GoBack(),浏览上一页; GoForward(),浏览下一页; Stop(),停止浏览; Refr
骆名群

一 、用C++Builder设计自己的浏览器

   C++Builder5提供了一个浏览器控件CppWebBrowser,它位于inte.net控件栏,主要方法有: Navigate函数,用于浏览给定的url的资源; GoBack(),浏览上一页; GoForward(),浏览下一页; Stop(),停止浏览; Refresh(),刷新当前页面。

  新建一个应用程序,将工程名保存为myie,设置Form1 的Name为Main_Form,在Main_Form上加入一个CppWebBrowser控件和一个ToolBar控件,把此ToolBar控件放入一个ComBox框,并加上五个ToolButton,设置其Name属性分别为“CppWebBrowser1”,“ToolBar1”,“ CB_URL”,“ TB_Prior,TB_Forward, TB_Stop,TB_Fresh,TB_Navigate”。

  TB_Navigate的OnClick事件代码如下: void __fastcall TMain_Form::NavigateExecute (TObject *Sender) { CppWebBrowser1->Navigate((WideString) CB_URL->Text, TNoParam(), TNoParam(), TNoParam(), TNoParam()); } ComBox1的OnKeyPress事件代码如下: void __fastcall TMain_Form::CB_URLKeyPress (TObject *Sender, char &Key) { if(Key==13) //若按下的键为回车键 NavigateExecute(Sender); } 

  其余的代码类似。

   编译运行,一个具有基本浏览功能的浏览器就生成了。 二、获得html文件的源文件   我们在用IE浏览主页时,若点击右键,选择“查看源文件”,系统会自动启动记事本显示此html的源文件。在编程时,有时需分析html文件的源文件,用C++ Builder 的 NMHTTP控件可以轻松解决这个问题。

  新建一个工程,从FastNet控件栏拖一个NMHTTP控件到窗体上,再拖一个Memo控件到窗体,假设要获得本人主页(http://lmq.4y.com.cn)的源文件,在Form1的OnCreate事件键入代码: void __fastcall TForm1::FormCreate(TObject *Sender) { Memo1->Clear(); //清空Memo1 NMHTTP1->Get(“http://lmq.4y.com.cn"); Memo1->Text = NMHTTP1->Body; }

  编译运行程序,Memo1框中立即显示本人主页的源文件。

  另外,NMHTTP控件还支持代理Proxy,其属性Proxy和 Port分别指代理服务器的IP地址和端口号。 三、自动调用浏览器或邮件程序    Windows 提供了ShellExecute函数,用来调用外部程序或与某程序关联的文件。

  其原型如下: HINSTANCE ShellExecute( HWND hwnd, // handle to parent window LPCTSTR lpOperation, // pointer to string that specifies operation to perform LPCTSTR lpFile, // pointer to filename or folder name string LPCTSTR lpParameters, // pointer to string that specifies executable -file parameters LPCTSTR lpDirectory, // pointer to string that specifies default directory INT nShowCmd // whether file is shown when opened );

  若要自动浏览器程序访问个人主页,程序代码如下: ShellExecute(Handle,NULL, “http://lmq.4y.com.cn",NULL,NULL,SW_SHOWNORMAL);

  若要启动系统默认邮件程序,程序代码如下: ShellExecute(Handle,NULL, “mailto:lmq@4y.com.cn",NULL,NULL, SW_SHOWNORMAL);

  以上程序在Pwin98+BCB5下运行通过。   

原文转自:http://www.ltesting.net