转载地址: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”增加
-
#include "MyDlog.h"
-
-
MyDlg m_MyDlg;
(2)修改DemoActiveXCtrl.cpp”
-
int CDemoActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
-
{
-
if (COleControl::OnCreate(lpCreateStruct) ==
-1)
-
return
-1;
-
-
// TODO: 在此添加您专用的创建代码
-
m_MyDlg.Create(IDD_DIALOG1,
this);
//初始化对话框
-
return
0;
-
}
-
void CDemoActiveXCtrl::OnDraw(
-
CDC* pdc,
const CRect& rcBounds,
const CRect& rcInvalid)
-
{
-
if (!pdc)
-
return;
-
-
// TODO: 用您自己的绘图代码替换下面的代码。
-
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
-
//pdc->Ellipse(rcBounds);
-
m_MyDlg.MoveWindow(rcBounds,
true);
-
}
-
<HTML>
-
<HEAD>
-
<TITLE>Test ActiveX
</TITLE>
-
</HEAD>
-
<OBJECT ID="DemoCtrl" WIDTH=528 HEIGHT=545 classid="CLSID:ECF33ACE-175E-4D25-919A-0FABF03B55D5">
-
<PARAM NAME="_Version" VALUE="65536">
-
<PARAM NAME="_ExtentX" VALUE="12806">
-
<PARAM NAME="_ExtentY" VALUE="1747">
-
<PARAM NAME="_StockProps" VALUE="0">
-
</OBJECT>
-
</HTML>
其中“ECF33ACE-175E-4D25-919A-0FABF03B55D5”是通过“DemoActiveXCtrl.idl”获取的
用IE浏览器打开保存的html文件。 就会出现ActiveX控件提示,安装后就会出现效果。
代码下载:https://download.csdn.net/download/xiatiancc/10275983