兄弟们,帮忙解决100分送上,再要再给。

IceAir 2003-05-28 09:37:30
我想用TCppWebBrowser显示Web页做界面,现在做到为网页上的元素绑定事件,按MSDN上说的,从IDispatch派生了一个类,然后得到网页元素后put_onkeydown等事件
派出了的类的Invoke执行正常。

可是现在我的头题是:
1.我对同一个这个派生类的对象put了几个事件上去,这几个事件触发时都会执行Invoke,我怎么知道是哪个事件触发的Invoke?

2.如果是onkeydown,那又怎么知道是哪个键按下呢?指点指点啊,一定给分分。
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
IceAir 2003-05-28
  • 打赏
  • 举报
回复
谢谢回答,我的想法是这样:

1.定义事件类:
class TEvent
{
typedef void (__fastcall *IaEvent_OnKeyDown)();
typedef void (__fastcall *IaEvent_OnKeyPress)();
……

public:
TIaEvent();
~TIaEvent();
public:
IaEvent_OnKeyDown OnKeyDown;
IaEvent_OnKeyPress OnKeyPress;
……
}

2.从IDispatch派生的类定义:
class TIaEventHandle : public IDispatch
{
public:
TIaEvent mIaEvent;
private:
DWORD mRefCount;
public:
TIaEventHandle();
virtual ~TIaEventHandle();
……
};
//--------------------------------------------------------------
这样,在用户要对网页元素进行事件绑定时可以用比较自然的语法:
TIaEvent event;
event.OnKeyPress = LoginEditOnKeyDown;
event.OnMouseMove = ………;
mIaWeb->BindElementEven_ByName("login_name", event);

我见这样看着就和CB里的事件绑定函数一样自然了,挺想这样用,就是不知在Invoke里怎么
分清楚,请各位有见之士继续发表建议,谢谢了了
叶子哟 2003-05-28
  • 打赏
  • 举报
回复
建议你还是在网页上直接做这种判断吧!
叶子哟 2003-05-28
  • 打赏
  • 举报
回复
1、键盘钩了:捕获按键事件->分析当前焦点元素->put->onkeydown->传递事件

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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