- 浏览器的表现形式丰富,适度的使用能使界面增色不少,介绍一下CB6中TCppWebBrowser控件的一些用法
- 分开说比较麻烦,从以前的工程里找了一个完整网页贴过来
- 网页:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>免费送歌</title>
- <style type="text/css">
- input {border:1px solid #000000}
- <!--
- -->
- </style>
- <script language="JavaScript" type="text/JavaScript">
- <!--
- function MM_preloadImages() { //v3.0
- var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
- var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
- if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
- }
- function MM_swapImgRestore() { //v3.0
- var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
- }
- function MM_findObj(n, d) { //v4.01
- var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
- d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
- if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
- for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
- if(!x && d.getElementById) x=d.getElementById(n); return x;
- }
- function MM_swapImage() { //v3.0
- var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
- if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
- }
- //-->
- </script>
- <style type="text/css">
- <!--
- td {
- font-family: "Arial";
- font-size: 12px;
- color: #990000;
- cursor: default;
- }
- .jiben {
- font-family: "Arial";
- font-size: 12px;
- font-weight: bold;
- color: #990000;
- cursor: default;
- }
- -->
- </style>
- </head>
- <body leftmargin="0" topmargin="0" onLoad="MM_preloadImages('image/K-17a.jpg','image/K-11a.jpg')">
- <table width="315" height="144" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td height="22"><table width="314" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="6"><img src="image/F-1.jpg" width="4" height="25"></td>
- <td> <div align="left">
- <table width="310" border="0" align="right" cellpadding="0" cellspacing="0" background="image/14A.jpg" id="moveform">
- <tr>
- <td valign="middle" 4>8751免费点歌登陆</td>
- <td width="195"><div align="right">
- <table width="64" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="29%"><div align="right"><img src="image/A1.jpg" alt="最小化" name="minform" width="20" height="25" id="Image1" onMouseOver="MM_swapImage('Image1',','image/1A.jpg',1)" onMouseOut="MM_swapImgRestore()"></div></td>
- <td width="32%"><div align="right"><img src="image/A2.jpg" width="20" height="25"></div></td>
- <td width="27%"><div align="right"><img src="image/A3.jpg" alt="关闭" name="closeform" width="19" height="25" id="Image2" onMouseOver="MM_swapImage('Image2',','image/3A.jpg',1)" onMouseOut="MM_swapImgRestore()"></div></td>
- <td width="12%"><div align="right"></div></td>
- </tr>
- </table>
- </div></td>
- </tr>
- </table>
- </div></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td valign="top"><table width="315" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="10"><img src="image/L-1.jpg" width="4" height="198"></td>
- <td width="260" valign="top"><table width="304" border="0" cellpadding="0" cellspacing="0" background="image/K-9.jpg">
- <tr>
- <td colspan="4"><table width="305" height="141" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td height="141" valign="top"> <table width="201" height="132" border="0" align="center" cellpadding="0" cellspacing="0">
- <tr>
- <td height="16" colspan="2"> </td>
- </tr>
- <tr>
- <td colspan="2" ><div align="center" class="jiben">基
- 本 信 息</div></td>
- </tr>
- <tr >
- <td width="81">手机号码:</td>
- <td width="120"> <input name="MbNum" type="text" id="MbNum" size="15"></td>
- </tr>
- <tr >
- <td>姓名:</td>
- <td> <input name="Name" type="text" id="Name" size="15"></td>
- </tr>
- <tr >
- <td>8751ID:</td>
- <td> <input name="ID" type="text" id="ID" size="15"></td>
- </tr>
- <tr >
- <td>备注信息:</td>
- <td> <input name="MemTextArea" type="text" id="MemTextArea" size="15"></td>
- </tr>
- </table></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td width="83" height="38"> </td>
- <td width="84"><a href="#"><img src="image/K-17.jpg" name="Ok" width="55" height="19" border="0" id="Ok" onMouseOver="MM_swapImage('Ok',','image/K-17a.jpg',1)" onMouseOut="MM_swapImgRestore()"></a></td>
- <td width="79"> <div align="center"><a href="#"><img src="image/K-11.jpg" name="Cancel" width="55" height="19" border="0" id="Cancel" onMouseOver="MM_swapImage('Cancel',','image/K-11a.jpg',1)" onMouseOut="MM_swapImgRestore()"></a></div></td>
- <td width="59"> <div align="left"></div></td>
- </tr>
- <tr>
- <td colspan="4"> </td>
- </tr>
- <tr>
- <td height="4" colspan="4"><img src="image/K-8.jpg" width="306" height="4"></td>
- </tr>
- </table></td>
- <td width="45"><img src="image/K-7.jpg" width="4" height="198"></td>
- </tr>
- </table></td>
- </tr>
- </table>
- <div align="right"></div>
- </body>
- </html>
- .h
- #ifndef AddFriendFormH
- #define AddFriendFormH
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include <Controls.hpp>
- #include <StdCtrls.hpp>
- #include <Forms.hpp>
- #include "SHDocVw_OCX.h"
- #include <OleCtrls.hpp>
- //---------------------------------------------------------------------------
- class TfrmAddFriend : public TForm
- {
- __published: // IDE-managed Components
- TCppWebBrowser *CppWebBrowserAddFriend;
- void __fastcall FormCreate(TObject *Sender);
- void __fastcall CppWebBrowserAddFriendDocumentComplete(TObject *Sender,
- LPDISPATCH pDisp, Variant *URL);
- void __fastcall FormDestroy(TObject *Sender);
- private:
- void MoveFormEvt(DISPID id, VARIANT* pVarResult);
- void MoveForm(void);
- void MaskEvt(DISPID id, VARIANT* pVarResult);
- void SetBrowserStyle(void);
- void CancelEvt(void);
- void ReleaseHook(void);
- void AddFriendOnClick(DISPID id, VARIANT* pVarResult);
- AnsiString GetInputValue(AnsiString itemname);
- void OnKeyPressEvt(DISPID id, VARIANT* pVarResult);
- void SetFocusInput(AnsiString itemname);
- void PutInputValue(AnsiString itemname, AnsiString value); // User declarations
- public: // User declarations
- AnsiString MbNum;
- AnsiString FriendName;
- AnsiString ID8751;
- AnsiString Info;
- __fastcall TfrmAddFriend(TComponent* Owner);
- };
- //---------------------------------------------------------------------------
- extern PACKAGE TfrmAddFriend *frmAddFriend;
- //---------------------------------------------------------------------------
- #endif
- .cpp
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "AddFriendForm.h"
- #include "GlobalFunc.h"
- #include "GlobalVar.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "SHDocVw_OCX"
- #pragma resource "*.dfm"
- TfrmAddFriend *frmAddFriend;
- //---------------------------------------------------------------------------
- __fastcall TfrmAddFriend::TfrmAddFriend(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TfrmAddFriend::FormCreate(TObject *Sender)
- {
- this->CppWebBrowserAddFriend->HandleNeeded();
- this->CppWebBrowserAddFriend->Navigate(WideString(GetResPath("AddFriends.htm")),NULL,NULL,NULL,NULL);
- CutFormRgn(Handle,316,225);
- }
- //---------------------------------------------------------------------------
- void TfrmAddFriend::MoveFormEvt(DISPID id, VARIANT* pVarResult)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLWindow2> htmlwnd2;
- System::DelphiInterface<IHTMLEventObj> htmlevt;
- System::DelphiInterface<IHTMLElement> htmlelem;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_parentWindow(&htmlwnd2);
- htmlwnd2->get_event(&htmlevt);
- htmlevt->get_srcElement(&htmlelem);
- WideString _tag;
- htmlelem->get_tagName(&_tag);
- long btn,_x,_y;
- htmlevt->get_button(&btn);
- htmlevt->get_screenX(&_x);
- htmlevt->get_screenY(&_y);
- if(_tag == WideString("TD") && btn == 1)
- {
- ::ReleaseCapture();
- ::SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(_x,_y));
- }
- pVarResult->vt = VT_BOOL;
- pVarResult->boolVal = FALSE;
- }
- void TfrmAddFriend::MoveForm(void)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElementCollection> htmlelemcoll;
- System::DelphiInterface<IHTMLElement> htmlelem;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_all(&htmlelemcoll);
- htmlelemcoll->item(TVariant("moveform"),TVariant(0),&disp);
- htmlelem = disp;
- TVariant OnfrmMosuseDown;
- OnfrmMosuseDown = CFunctionObject<TfrmAddFriend>::CreateEventFunctionObject(this,&TfrmAddFriend::MoveFormEvt,0);
- htmlelem->put_onmousedown(OnfrmMosuseDown);
- }
- void TfrmAddFriend::MaskEvt(DISPID id, VARIANT* pVarResult)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLWindow2> htmlwnd2;
- System::DelphiInterface<IHTMLEventObj> htmlevt;
- System::DelphiInterface<IHTMLElement> htmlelem;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_parentWindow(&htmlwnd2);
- htmlwnd2->get_event(&htmlevt);
- htmlevt->get_srcElement(&htmlelem);
- WideString _tag;
- htmlelem->get_tagName(&_tag);
- if(_tag == WideString("INPUT"))
- return;
- pVarResult->vt = VT_BOOL;
- pVarResult->boolVal = FALSE;
- }
- void TfrmAddFriend::CancelEvt(void)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElement> htmlelem;
- System::DelphiInterface<IHTMLElement2> htmlelem2;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_body(&htmlelem);
- htmlelem2 = htmlelem;
- TVariant vt;
- vt = CFunctionObject<TfrmAddFriend>::CreateEventFunctionObject(this,&TfrmAddFriend::MaskEvt,0);
- htmlelem->put_onselectstart(vt);
- htmlelem2->put_oncontextmenu(vt);
- }
- void TfrmAddFriend::SetBrowserStyle(void)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElement> htmlelem;
- System::DelphiInterface<IHTMLBodyElement> htmlbody;
- System::DelphiInterface<IHTMLStyle> htmlsty;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_body(&htmlelem);
- htmlbody = htmlelem;
- htmlbody->put_scroll(WideString("no"));
- htmlelem->get_style(&htmlsty);
- htmlsty->put_border(WideString("none"));
- }
- void TfrmAddFriend::ReleaseHook(void)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElementCollection> htmlelemcoll;
- System::DelphiInterface<IHTMLElement> htmlelem;
- System::DelphiInterface<IHTMLElement2> htmlelem2;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_all(&htmlelemcoll);
- htmlelemcoll->item(TVariant("moveform"),TVariant(0),&disp);
- htmlelem = disp;
- VARIANT varNull;
- varNull.vt = VT_NULL;
- htmlelem->put_onmousedown(varNull);
- htmldoc2->get_body(&htmlelem);
- htmlelem->put_onselectstart(varNull);
- htmlelem->put_onclick(varNull);
- htmlelem->put_onkeypress(varNull);
- htmlelem2 = htmlelem;
- htmlelem2->put_oncontextmenu(varNull);
- }
- AnsiString TfrmAddFriend::GetInputValue(AnsiString itemname)
- {
- //TODO: Add your source code here
- AnsiString rtn = "";
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElement> htmlelem;
- System::DelphiInterface<IHTMLElementCollection> htmlelemcoll;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return rtn;
- htmldoc2 = disp;
- htmldoc2->get_all(&htmlelemcoll);
- htmlelemcoll->item(TVariant(itemname),TVariant(0),&disp);
- htmlelem = disp;
- TVariant val;
- htmlelem->getAttribute(WideString("value"),0,&val);
- rtn = val.bstrVal;
- return rtn;
- }
- void TfrmAddFriend::PutInputValue(AnsiString itemname, AnsiString value)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElement> htmlelem;
- System::DelphiInterface<IHTMLElementCollection> htmlelemcoll;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_all(&htmlelemcoll);
- htmlelemcoll->item(TVariant(itemname),TVariant(0),&disp);
- htmlelem = disp;
- htmlelem->setAttribute(WideString("value"),TVariant(value),0);
- }
- void TfrmAddFriend::AddFriendOnClick(DISPID id, VARIANT* pVarResult)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLWindow2> htmlwnd2;
- System::DelphiInterface<IHTMLEventObj> htmlevt;
- System::DelphiInterface<IHTMLElement> htmlelem;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_parentWindow(&htmlwnd2);
- htmlwnd2->get_event(&htmlevt);
- htmlevt->get_srcElement(&htmlelem);
- WideString ws;
- bool flag;
- ws.SetLength(64);
- htmlelem->get_tagName(&ws);
- if(ws == WideString("IMG"))
- {
- TVariant val;
- htmlelem->getAttribute(WideString("name"),0,&val);
- AnsiString str;
- str = val.bstrVal;
- if(str == WideString("closeform"))
- {
- this->Close();
- }
- else if(str == WideString("minform"))
- {
- this->WindowState = wsMinimized ;
- }
- else if(str == WideString("Ok"))
- {
- this->MbNum = this->GetInputValue("MbNum");
- this->FriendName = this->GetInputValue("Name");
- this->ID8751 = this->GetInputValue("ID");
- this->Info = this->GetInputValue("MemTextArea");
- this->ModalResult = mrOk;
- this->Close();
- }
- else if(str == WideString("Cancel"))
- {
- this->ModalResult = mrCancel;
- this->Close();
- }
- }
- pVarResult->vt = VT_BOOL;
- pVarResult->boolVal = FALSE;
- }
- //---------------------------------------------------------------------------
- void __fastcall TfrmAddFriend::CppWebBrowserAddFriendDocumentComplete(
- TObject *Sender, LPDISPATCH pDisp, Variant *URL)
- {
- this->CancelEvt();
- this->SetBrowserStyle();
- this->MoveForm();
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElement> htmlelem;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_body(&htmlelem);
- TVariant vt;
- vt = CFunctionObject<TfrmAddFriend>::CreateEventFunctionObject(this,&TfrmAddFriend::AddFriendOnClick,0);
- htmlelem->put_onclick(vt);
- vt = CFunctionObject<TfrmAddFriend>::CreateEventFunctionObject(this,&TfrmAddFriend::OnKeyPressEvt,0);
- htmlelem->put_onkeypress(vt);
- this->SetFocusInput("MbNum");
- }
- //---------------------------------------------------------------------------
- void TfrmAddFriend::OnKeyPressEvt(DISPID id, VARIANT* pVarResult)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLWindow2> htmlwnd2;
- System::DelphiInterface<IHTMLEventObj> htmlevt;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_parentWindow(&htmlwnd2);
- htmlwnd2->get_event(&htmlevt);
- long key;
- htmlevt->get_keyCode(&key);
- if(int(key) == 13)
- {
- this->MbNum = this->GetInputValue("MbNum");
- this->FriendName = this->GetInputValue("Name");
- this->ID8751 = this->GetInputValue("ID");
- this->Info = this->GetInputValue("MemTextArea");
- this->ModalResult = mrOk;
- this->Close();
- pVarResult->vt = VT_BOOL;
- pVarResult->boolVal = FALSE;
- }
- if(int(key) == 27)
- {
- this->Close();
- pVarResult->vt = VT_BOOL;
- pVarResult->boolVal = FALSE;
- }
- }
- void TfrmAddFriend::SetFocusInput(AnsiString itemname)
- {
- //TODO: Add your source code here
- _di_IDispatch disp;
- System::DelphiInterface<IHTMLDocument2> htmldoc2;
- System::DelphiInterface<IHTMLElementCollection> htmlelemcoll;
- System::DelphiInterface<IHTMLElement2> htmlelem2;
- disp = this->CppWebBrowserAddFriend->Document;
- if(!disp)
- return;
- htmldoc2 = disp;
- htmldoc2->get_all(&htmlelemcoll);
- htmlelemcoll->item(TVariant(itemname),TVariant(0),&disp);
- if(!disp)
- return;
- htmlelem2 = disp;
- htmlelem2->focus();
- }
- void __fastcall TfrmAddFriend::FormDestroy(TObject *Sender)
- {
- this->ReleaseHook();
- }
TCppWebBrowser控件的一些用法
最新推荐文章于 2024-07-22 08:55:10 发布