基于vs2012开发activex(MFC)控件

转载地址:https://blog.csdn.net/xiatiancc/article/details/79485195

最近学习下ActiveX的开发,网上找了好多东西,现在把开发过程记录下来以备以后使用。

1.新建工程


2.一直点击下一步,直到出现一下界面,注意红色标注选项,点击完成。


3.进入工程的属性界面,设置工程属性


4.添加对话框资源及其他控件,添加对话框类,


5.设置对话框属性



6.设置Dialog的“添加类”



输入“类名”;(其他的空白处事自动填写)



此时自动生成“MyDlg.h”和“MyDlg.cpp”两个文件


7.对“CDemoActivexCtrl”添加WM_CREATE事件,选择”<添加>OnCreate”,以初始化对话框对象。



此时在“DemoActiveXCtrl.cpp”中多了两部分代码



8.修改代码

    (1)在“DemoActiveXCtrl.h”增加

        


  
  
  1. #include "MyDlog.h"
  2. MyDlg m_MyDlg;


    (2)修改DemoActiveXCtrl.cpp”

    


  
  
  1. int CDemoActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
  2. {
  3. if (COleControl::OnCreate(lpCreateStruct) == -1)
  4. return -1;
  5. // TODO: 在此添加您专用的创建代码
  6. m_MyDlg.Create(IDD_DIALOG1, this); //初始化对话框
  7. return 0;
  8. }

  
  

   
   
  1. void CDemoActiveXCtrl::OnDraw(
  2. CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
  3. {
  4. if (!pdc)
  5. return;
  6. // TODO: 用您自己的绘图代码替换下面的代码。
  7. //pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
  8. //pdc->Ellipse(rcBounds);
  9. m_MyDlg.MoveWindow(rcBounds, true);
  10. }


此时,有编辑框的那个界面已经可以在控件并加载后显示了,先在菜单栏中点击“生成”、“重新生成解决方法”,如果没有错误,则该控件就会在本机中注册。下边编写一简单htm文件在本机上对该控件进行测试。

  
  
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Test ActiveX </TITLE>
  4. </HEAD>
  5. <OBJECT ID="DemoCtrl" WIDTH=528 HEIGHT=545 classid="CLSID:ECF33ACE-175E-4D25-919A-0FABF03B55D5">
  6. <PARAM NAME="_Version" VALUE="65536">
  7. <PARAM NAME="_ExtentX" VALUE="12806">
  8. <PARAM NAME="_ExtentY" VALUE="1747">
  9. <PARAM NAME="_StockProps" VALUE="0">
  10. </OBJECT>
  11. </HTML>

其中“ECF33ACE-175E-4D25-919A-0FABF03B55D5”是通过“DemoActiveXCtrl.idl”获取的



用IE浏览器打开保存的html文件。 就会出现ActiveX控件提示,安装后就会出现效果。


代码下载:https://download.csdn.net/download/xiatiancc/10275983




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值