基於vs2012開發activex(MFC)控制元件
阿新 • • 發佈:2019-02-01
最近學習下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控制元件提示,安裝後就會出現效果。