开发者社区> double2li> 正文

VC6.0制作OCX并web调用 .

简介: 1.打开VC6.0,新建工程,选择:MFC ActiveX ControlWizard,后面步骤默认即可; 2.在ClassView上,可以看到主要有**App\**Ctrl\**ProgPage几个类,其中接口主要在**Ctrl内实现,可以通过MFC ClassWizard(ctrl+w快捷键)的Automation页建立接口函数; 3.
+关注继续查看

1.打开VC6.0,新建工程,选择:MFC ActiveX ControlWizard,后面步骤默认即可;

2.在ClassView上,可以看到主要有**App\**Ctrl\**ProgPage几个类,其中接口主要在**Ctrl内实现,可以通过MFC ClassWizard(ctrl+w快捷键)的Automation页建立接口函数;

3.接口函数是对外,因此在参数类型定义上要注意,字符我一般用LPCTSTR,如下面函数:

  void COnOcxCtrl::CallOcx(LPCTSTR devip)
{
 // TODO: Add your dispatch handler code here
 AfxMessageBox(devip);
 ip=devip;
 Refresh();//重绘,调用ondraw()函数;
 return;
}

4.OCX控件界面主要在OnDraw()函数内实现,可以内嵌到IE的,如果是独立对话框和Console是无法内嵌到IE,如:

CONST char* ip="127.0.1.1";
void COnOcxCtrl::OnDraw(
   CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
 // TODO: Replace the following code with your own drawing code.
 pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
 pdc->Ellipse(rcBounds);
 pdc->TextOut(0,0,ip);
}

5.本案例主要实现:接口方法CallOcx接收一个IP地址,然后更新控件界面的IP显示;下步应研究如何利用OnDraw()内CDC绘制界面,满足与用户的交互;

对于**ProgPage(属性)和**Events(触发对容器响应的事件)的理解可参考http://www.cnblogs.com/jyz/archive/2008/04/11/1148476.html地址;

6.Web调用OCX的代码:
---------------------------------------------------------------------------------------------------------------------------------

<HTML>
<H1> MFC ActiveX Test Page </H1><p>
You should see your MFC forms or controls embedded in the form below.
<HR><center><P>

<input id="input1" value="CallActiveX" type="button" onclick="CallOcx()">
<br>
<OBJECT id="devread" name="devread" classid="clsid:39F8ACC9-EF99-4B74-9C3C-EE50E5AD56C8" codebase="OnOcx.ocx" style="HEIGHT: 500px;WIDTH:500px"></OBJECT> 

</HTML>

<script   language="JavaScript"   type="text/JavaScript">  
function CallOcx()  
{  
   //--初始化、装载样式文件  
   var   iRes;
   iRes   =   devread.CallOcx("172.30.88.66");
   if(iRes==0)
   {
    alert("失败!");  
   }
}
</script>  

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

下面研究如何封装成cab来提供给web调用;

参考:http://download.csdn.net/detail/fjssharpsword/4165589

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用nw.js将web项目打包为exe软件(xp版本)
使用nw.js将web项目打包为exe软件(xp版本)
163 0
QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)
QT应用编程: Visual Studio里编写activex控件在网页中运行(dll插件形式)
95 0
基于DsoFramer开发MSWord的ocx方式的总结
一、Dsoframer的已有问题 1. 增加接口函数ActivateWithoutFocus,激活word, 但是不抢占焦点; 在dsofauto.
1330 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
文章
问答
文章排行榜
最热
最新
相关电子书
更多
WEB浏览器中即将发生的安全变化
立即下载
从Web到Cloud App——YunOS Web App 开发经验分享
立即下载
从Web到Cloud App
立即下载