****************************************************************************
通过网页执行脚本,调出来个对话框,点对话框上的按钮,
执行activexCtrl里的一个方法,并且响应 activexctrl里的一个事件,
和网页上的脚本进行交互,现在最后一步有问题不知道如何实现
附件下载 http://www.kuaipan.cn/file/id_40397049341936301.htm就这么多分了见谅
****************************************************************************
下边是详细的思路
1、JS可以调用activex的 窗口显示出来 【已实现】
test()方法中//引入对话框类的头文件
#include "WinDlg.h"WinDlg *wDlg = new WinDlg();
wDlg->Create(IDD_DIALOG1, GetDesktopWindow());
wDlg->ShowWindow(SW_SHOW);
//这里测试用可以达到第3的要求,但是实际上是要求点对话框后要求让执行
FireShowstr("test");
2、窗口的按钮点击后 执行activex上的函数 【已实现】//最上方引用activex的ctrl 的头文件
#include "DemoCtl.h"//按钮的事件
CDemoCtrl *dCtrl = new CDemoCtrl();
dCtrl->showDlg();CDemoCtrl::exe() 的内容//do something
MessageBox("窗体调用控件的程序", "activex提示的", MB_OK);
//event fire
//希望上边的函数执行完成后可以和让下方的事件运行
FireShowstr("窗体调activex的程序激发的事件到JS进行传值");3、调用activex上的FireShowstr(str)来响应网页上边的showstr(str) 实现activex到网页脚本的传值调用【有问题】方法1 
在CDemoCtrl::test中直接加的FireShowstr(str)是可以正常工作的,在CDemoCtrl::exe中加上FireShowstr(str)不能生效方法2
在showDlg中加上SendMessage()自定义消息,也没有实现不知道这个是如何来操作才能实现对话框【激活activex的Fire事件和网页JS进行交互】有可能这部的调用是有错误的但是不知道如何能让事件正常工作
附件请看源码
*****************************************
【参考工具】QQ邮箱的编辑器的截屏功能 点击出来对话框,截图操作后 把上传到服务器的图片插入到编辑器网上还有一种是通过消息 机制来实现,我试了试用两个MFC的窗体程序没有问题,但是在控件里却实现不了不知道是什么原因activex事件网页JS

解决方案 »

  1.   

    试试在在对话框中用GetParent获取父窗口Activex句柄,利用此句柄发送消息,然后在此消息里FireShowstr("test")
      

  2.   

    已经找到方法了
    在WinDlg类中增加公用属性 dCtrlCDemoCtrl* dCtrl;在ctrl类中 WinDlg *wDlg = new WinDlg();
    wDlg->Create(IDD_DIALOG1, GetDesktopWindow());
    wDlg->ShowWindow(SW_SHOW);
    wDlg->dCtrl = this;把this传到对话框类中在对话框中的按钮事件中
    dCtrl->sendMessage 自定事件或者
    dCtrl->ctrl类的方法 
    两种经过测试都没有问题