分享
 
 
 

CB6中使用浏览器控件的一些操作

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

浏览器的表现形式丰富,适度的使用能使界面增色不少,介绍一下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">&nbsp;</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">&nbsp;</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">&nbsp;</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();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有