VC6.0開發OCX按鈕控件


VC6.0開發OCX按鈕控件
0 前言

1、OCX是典型的ActiveX控件,常見的OCX控件有很多,IE瀏覽器、Word、Excel等都提供各種各樣的OCX控件。
2、OCX控件的優點是可以在其他應用程序中嵌入使用。OCX控件做為插件、外掛式的應用非常靈活方便。
3、一般用的比較多的是做為視頻、圖片、圖表等顯示區域控件。最近碰到幾個按鈕的功能要封裝成OCX控件,供其它程序使用。網上大概搜索了下,資料不多,於是自己寫了下來,以供查找。

1 創建OCX項目

1、打開VC6.0,創建MFC ActiveX項目,工程名稱:OcxDemo。

2、按照向導步驟操作,點擊“完成”創建項目成功。

3、在OcxDemoCtrl.h文件中定義“增加”按鈕。

//按鈕IDC
#define IDC_BUTTON_ADD  0x2001    //"增加"按鈕
private:
    //"增加"按鈕
    CButton m_BtnAdd;

4、增加自繪“增加”按鈕方法。

5、在OcxDemoCtrl.cpp新生成的CreateBtnAdd方法中添加創建按鈕相關代碼。

m_BtnAdd.Create(_T("Add"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,60,30), this, IDC_BUTTON_ADD);

6、對“增加”按鈕,增加響應事件。

//OcxDemoCtrl.h
private:
    //"增加"按鈕
    CButton m_BtnAdd;
    //"增加"按鈕單擊響應
    void OnButtonAdd();
//OcxDemoCtrl.cpp
BEGIN_MESSAGE_MAP(CActiveXDemoCtrl, COleControl)
    //{{AFX_MSG_MAP(CActiveXDemoCtrl)
    // NOTE - ClassWizard will add and remove message map entries
    //    DO NOT EDIT what you see in these blocks of generated code !
    ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
    //}}AFX_MSG_MAP
    ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()

void COcxDemoCtrl::OnButtonAdd()
{
    MessageBox("增加");
}

7、刪除OnDraw中代碼。

//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);

8、編譯生成OcxDemo.ocx。 

9、源碼:OcxDemo.rar

2 測試OcxDemo.ocx

1、打開ActiveX Control Test Container工具,插入OcxDemo.ocx。

2、Invoke:CreateBtnAdd方法。

3、測試CreateBtnAdd方法,成功。

3 VC6調用OCX控件

1、打開VC6.0,創建MFC AppWizard[exe]對話框項目,工程名稱:OcxTestDemo。

2、插入OcxTestDemo.ocx到控件面板。

3、對控件添加關聯成員變量:m_OcxDemoCtrl。

4、BOOL COcxTestDemoDlg::OnInitDialog()添加自繪“增加”按鈕方法。

m_OcxDemoCtrl.CreateBtnAdd();

5、編譯生成OcxTestDemo.exe,查看調用OcxDemo.oxc效果。

 

 6、源碼:OcxTestDemo.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM