程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 利用MFC開發ActiveX控件

利用MFC開發ActiveX控件

編輯:關於C語言

 

  利用MFC的Application Wizard我們可以方便的創建一個工程,首先在工程類型中選擇MFC ActiveX Control,然後選擇在工程中創建多少個控件。在接下來的對話框中並且為每個控件輸入相關信息,通過Edit Name按鈕可以為控件指定名稱,通過Advanced按鈕可以為控件指定各種附加特性,此外你還可以將控件指定為一個繼承了某種現有窗口類的子類。在本節的例子中我們創建三個控件,分別是:

  • 普通窗口控件 CSam_windowCtrl
  • 無窗口控件 CSam_nowindowCtrl
  • EDIT窗口控件 CSam_editwindowCtrl

在工程創建完畢後你就可以編譯並測試控件了,但是這時候的控件還不能做任何事情。我們需要為控件添加方法和屬性。簡單的講,方法就相當與類中的函數調用,而屬性就相當與類中的成員變量。

  假設在普通窗口控件中我們將顯示一份學生資料,包括姓名,出生年月,班級名稱,為了能夠設置這些數據,我們為控件添加一個方法。選擇Class Wizard,並選中對話框中的Automation頁,按下Add Method按鈕以添加消息,然後在彈出的對話框中輸入相關信息。我們為新添加的方法取名為SetMertial,同時指定三個參數LPCTSTR pszName,LPCTSTR pszBirth,LPCTSTR pszClass,返回值設置為void,在保存後Class Wizard會生成一個函數,該函數的名稱就是你所指定的方法名稱。此外我們還添加一個屬性用於讓用戶設置顯示文字的顏色。在添加屬性對話框中為屬性取名為TextColor,並且接收的參數為OLE_COLOR,並且將實現方法設定為Get/Set Methods。在保存後Class Wizard會為你生成GetXXX/SetXXX兩個函數XXX就代表你所指定的屬性名,當控件容器更改屬性時就通過這兩個函數。

  然後我們為CSam_windowCtrl添加三個成員變量保存這些學生資料和一個用於保存顏色,當然別忘了在構造函數中對它們初始化。然後修改和添加與方法和屬性有關的函數,我們可以看到在數據被修改後都會調用Invalidate()使窗口重繪。

// 添加成員變量

class CSam_windowCtrl : public COleControl

{

    DECLARE_DYNCREATE(CSam_windowCtrl)

 

// Constructor

public:

    CSam_windowCtrl();

    CString m_szName,m_szBirth,m_szClas

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved