当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: cpoint pt pt.x 和 pt.y 是要变成字符串吗? 用textout()函数? 有别的方法吗? 请赐教 ......
    摘要: ip r_num st_time times 192.168.0.26 65530 1048239563 1 192.168.0.26 63275 1048239566 2 192.168.0.26 39285 1048239568 3 192.168.0.26 98366 1048239570 4 192.168.0.26 67377 1048239572 5 192.1......


狂帮我解决技术问题

http://61.133.87.165/bbs/attachment.php?s=&postid=382458  
   
  我通过这个程序,运行如下代码可以正常执行  
  Sub   Test()  
   
  Dim   obj  
   
  Set   obj   =   CreateObject("COfficeDialog.AxCommFile")  
   
  If   Not   obj   Is   Nothing   Then  
   
  obj.DoModal()  
  Set   obj   =   Nothing  
   
  End   If  
   
  End   Sub  
   
  Test  
  ---------------------  
  其中COfficeDialog是我写的OLE自动化,可是我却无法让他去调用OCX控件。  
  那位肯帮忙解决?我想让我程序具有VBA功能,提供个思路也行啊!!  
  我的想法是把OCX控件放在对话框里,然后VB脚本通过他的方法去执行。问题是如何得到OCX的接口,以及怎么样去管理,调配。

NO.1   作者: KcSoft

up起来。

NO.2   作者: jack_wq

解决不了,帮你up

NO.3   作者: ypyao85

只能帮你UP了

NO.4   作者: psusong

可是我却无法让他去调用OCX控件???  
  -----------------------------  
  COfficeDialog.AxCommFile就是一个ocx控件呀!  
  你自己不是调用成功了吗?  
 

NO.5   作者: JennyVenus

up

NO.6   作者: rouqing

能不能用com呢?关注

NO.7   作者: zhiqiu

接分

NO.8   作者: patricklee01

up

NO.9   作者: 3jaja

注册

NO.10   作者: steve_shun

up

NO.11   作者: bm1408

只是来接分的!

NO.12   作者: Ora2002

由COfficeDlg提供方法来查讯OCX控件的IDispatch接口,或者自定义一接口,然后用自定一接口获取标准自动化接口

NO.13   作者: Ora2002

如实现义方法QueryInterface(   DWORD   idOCX,   REFIID   IID,   void**   IDispatch     )  
  IDispatch可以用来访问OCX的所有方法和属性

NO.14   作者: bely_2000

up

NO.15   作者: victorzou

up

NO.16   作者: awnucel

up

NO.17   作者: masterz

you   only   have   to   pass   IDispatch*   to   the   script   function.  
  void   CScriptDemoDlg::OnTestOwnctrl()    
  {//http://61.133.87.165/bbs/attachment.php?s=&postid=382458  
  //http://www.codeproject.com/com/ScriptDemo.asp  
   
  //   TODO:   Add   your   control   notification   handler   code   here  
  LPUNKNOWN   lpknow=m_mytestctrl.GetControlUnknown();  
  if(!lpknow)  
  return;  
  LPDISPATCH   lpDisp=NULL;  
  HRESULT   hr=lpknow->QueryInterface(IID_IDispatch,(void**)(&lpDisp));  
  if(FAILED(hr)||NULL==lpDisp)  
  return;  
  CString     strProc;  
  CString   strCode   =   "function   TestMyCtrl(obj)   \n {\n   obj.test(\"called   by   my   test   script   in   319\");\n }\n";  
  m_ctlFunctions.GetWindowText(   strProc   );  
  strProc   =   "TestMyCtrl";  
  if   (!m_ScriptObj.AddScript(   strCode   ))  
  {  
  CString   strError   =   m_ScriptObj.GetErrorString();  
  m_ctlResult.SetWindowText(   strError   );  
  }  
  else  
  m_ctlResult.SetWindowText(   _T("")   );  
   
  /*  
  function   TestMyCtrl(obj)  
  {    
  obj.test("a");  
  }    
   
      Function   TestMyCtrl(obj)  
      obj.test("aafdsadfdsgdasgsdf")  
      End   Function  
  */  
         
  CSafeArrayHelper   sfHelper;  
          try{  
                  _variant_t   var;  
                  sfHelper.Create(VT_VARIANT,   1,   0,   1);         //   1   parameter  
  var   =   lpDisp;  
                  sfHelper.PutElement(0,   (void*)&var);         //   parameter1   ->   index   0  
                  LPSAFEARRAY   sa   =     sfHelper.GetArray();  
                  _variant_t   varRet;  
                  if   (m_ScriptObj.RunProcedure(strProc,   &sa,   &varRet))  
                          m_ctlResult.SetWindowText(   (LPCTSTR)(_bstr_t(varRet))   );  
                  else  
                  {  
                          CString   strError   =   m_ScriptObj.GetErrorString();  
                          m_ctlResult.SetWindowText(   strError   );  
                  }  
          }  
          catch(...)  
          {  
                  CString   strError   =   m_ScriptObj.GetErrorString();  
                  m_ctlResult.SetWindowText(   strError   );  
          }  
  }  
 


    摘要: 我在windows2000pro下安装msn messeger 5.0,出现1601失败对话窗,要求我重新下载该软件。但我重新下载多次,多次安装故障依旧。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE