用VS2019开发一个简单的ActiveX(MFC)控件

一、创建控件

  1. 管理员身份运行VS2019
  2. 创建一个新的项目:模板为 MFC ActiveX 控件

  1. 创建新项目:testActiveX
  2. 直接下一步
  3. 勾选:在“插入对象”对话框中可用
  4. 打开项目属性
  5. 修改项目属性:MFC的使用修改为【在静态库中使用MFC】

二、添加界面显示

  1. 在 资源视图 中插入对话框
    在这里插入图片描述
  2. delete 掉 【确定】【取消】,然后修改對話框屬性:
    Border改為None,
    Control改為Ture,
    ID改為IDD_MAIN_DIALOG
    Style改為Child
    System改為False
    Visible改為True

  3. 拖拽一个 Edit Control 过来,调整好自己喜欢的大小
  4. 双击对话框:Dialog,为该对话框添加一个类
  5. 在testActiveXCtrl.h中添加:CMainDlg m_ctrldlg
  6. 修改 onDraw 如下图
  7. 类视图下面,点击类向导(Z)
  8. 在”消息“栏下选择 WM_CREATE,然后点击右边”添加处理程序“。注意图中的其它设置。
  9. vs2019自动添加的代码还需要手动添加一条:m_ctrldlg.Create(IDD_MAIN_DIALOG, this);
  10. 至此为止,基本框架改动处一共有:
    testActiveX.h 一处 #include “resource.h”
    testActiveXCtrl.h 三处
    ①#include “CMainDlg.h”
    ②CMainDlg m_ctrldlg;
    ③afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    testActiveXCtrl.cpp 三处
    ①ON_WM_CREATE()
    ②// TODO: 用您自己的绘图代码替换下面的代码。
    //pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
    //pdc->Ellipse(rcBounds);
    m_ctrldlg.MoveWindow(rcBounds, TRUE);
    ③m_ctrldlg.Create(IDD_MAIN_DIALOG, this);

可以点击重新生成解决方案了,如果未报错,说明ActiveX控件已在本机中

  1. 最后,找到一个ID,在testActiveX.idl文件的最后面,uuid()

    将该ID,替换下面htm文件中的classid
<HEAD>
	<TITLE>Test ActiveX</TITLE
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值