TCppWebBrowser自动填表单的问题

tiancanyue 2009-12-04 10:16:08
依然TCppWebBrowser~

填表单,一般的没问题,可是最近遇到个BT的,其实也不算太BT,但不知道怎么做,求解

这个表单有个填省和市的地方,填完省份后会触发某个事件,比如onchange然后网页执行<Script>中某一函数,这时市这里面才有内容。

问题是,我想自动填,我在填完省后直接填市,里面没显示;
填完省后execScript那个函数,再填,还是一样。

求解该怎么办?
...全文
191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiancanyue 2009-12-08
  • 打赏
  • 举报
回复
我想知道这一句: DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
我想改为有n个参数,怎么做?
我的方法:
TVariant *p=new TVariant[n];
...
DISPPARAMS dispparamsNoArgs = {p, NULL, n, 0};

我试验了下等于n的时候,结果不行
比如yschenwei给出的那个表单,onChange的函数要一个整形参数,我就:
TVariant *p=new TVariant[1];
p[0]=1;
DISPPARAMS dispparamsNoArgs = {p, NULL, 1, 0};

结果表单填写错误~
tiancanyue 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jiangsheng 的回复:]
IHTMLDocument4::createEventObject
IHTMLElement3::fireEvent
[/Quote]jiangsheng老大的这个确实有效,但我不想升级库文件。
yschenwei 2009-12-07
  • 打赏
  • 举报
回复
把这个稍微修改下,不就成为你想要的了吗。
蒋晟 2009-12-07
  • 打赏
  • 举报
回复
IHTMLDocument4::createEventObject
IHTMLElement3::fireEvent
tiancanyue 2009-12-07
  • 打赏
  • 举报
回复
无参情况下可以,有参情况下没有解决
tiancanyue 2009-12-07
  • 打赏
  • 举报
回复
问题大致解决:
[code=C/C++]pDisp->QueryInterface(/*IID_IHTMLElement*/IID_IHTMLSelectElement,(void**)&msgElem);
TVariant vi;
msgElem->get_onchange(&vi);

DelphiInterface <IDispatch> ev((IDispatch *)vi);
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};


TVariant vr;
ev->Invoke(DISPID_VALUE,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsNoArgs,&vr,NULL,NULL);
[code]
tiancanyue 2009-12-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yschenwei 的回复:]
把这个稍微修改下,不就成为你想要的了吗。
[/Quote]什么意思?没搞懂
我是要自动填一个这样的表单
tiancanyue 2009-12-06
  • 打赏
  • 举报
回复
高手高手,你们在哪里?
tiancanyue 2009-12-06
  • 打赏
  • 举报
回复
我该怎么办?
tiancanyue 2009-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yschenwei 的回复:]
是这种效果否?
HTML code<html><head><title>
test</title><scriptlanguage="javascript">//var select1_len = document.frm.s1.options.length;var select2=new Array(4);for (i=0; i<4; i++)
{
select2[i]=new Array();
}//定义基本选项select2[0][0]=new Option("请选择","");

select2[1][0]=new Option("PHP","");
select2[1][1]=new Option("ASP","");
select2[1][2]=new Option("JSP","");

select2[2][0]=new Option("C/C++","");
select2[2][1]=new Option("Java","");
select2[2][2]=new Option("C#","");

select2[3][0]=new Option("Perl","");
select2[3][1]=new Option("Ruby","");
select2[3][2]=new Option("Python","");function redirec(x)
{var temp= document.frm.s2;for (i=0;i<select2[x].length;i++)
{
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}
temp.options[0].selected=true;

}</script></head><body><formname="frm"><selectname="s1" onChange="redirec(this.options.selectedIndex)"><optionselected>请选择</option><optionvalue="1">脚本语言</option><optionvalue="2">高级语言</option><optionvalue="3">其他语言</option></select><selectname="s2"><optionvalue="请选择" selected>请选择</option></select></form></body></html>
[/Quote]
Definately yes!
yschenwei 2009-12-06
  • 打赏
  • 举报
回复
是这种效果否?
<html>
<head>
<title>
test
</title>
<script language="javascript">

//var select1_len = document.frm.s1.options.length;
var select2 = new Array(4);


for (i=0; i<4; i++)
{
select2[i] = new Array();
}
//定义基本选项
select2[0][0] = new Option("请选择", " ");

select2[1][0] = new Option("PHP", " ");
select2[1][1] = new Option("ASP", " ");
select2[1][2] = new Option("JSP", " ");

select2[2][0] = new Option("C/C++", " ");
select2[2][1] = new Option("Java", " ");
select2[2][2] = new Option("C#", " ");

select2[3][0] = new Option("Perl", " ");
select2[3][1] = new Option("Ruby", " ");
select2[3][2] = new Option("Python", " ");


function redirec(x)
{
var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
{
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}
temp.options[0].selected=true;

}
</script>
</head>
<body>
<form name="frm">
<select name="s1" onChange="redirec(this.options.selectedIndex)">
<option selected>请选择</option>
<option value="1">脚本语言</option>
<option value="2">高级语言</option>
<option value="3">其他语言</option>
</select>
<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>
</body>
</html>

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧