基於vs2012開發activex(MFC)控制元件

xiatiancc發表於2018-03-08

最近學習下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);
}


此時,有編輯框的那個介面已經可以在控制元件並載入後顯示了,先在選單欄中點選“生成”、“重新生成解決方法”,如果沒有錯誤,則該控制元件就會在本機中註冊。下邊編寫一簡單htm檔案在本機上對該控制元件進行測試。
<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




相關文章