天天看點

ACTIVEX控件的制作

1,建立MFC ACTIVEX CONTROLWIZARD工程,名為Clock,選擇空的工程 ,建立一個Clock.cpp源檔案

2.再CClockCtrl類中添加WM_CREATE和WM_TIMERA的消息響應函數,添加的代碼如下所示

int CClockCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

 if (COleControl::OnCreate(lpCreateStruct) == -1)

  return -1;

 // TODO: Add your specialized creation code here

 SetTimer(0,1000,NULL);

 return 0;

}

void CClockCtrl::OnTimer(UINT nIDEvent)

{

 // TODO: Add yomessage handler code here and/or call default

 Invalidate(true);

 COleControl::OnTimer(nIDEvent);

}

3.再OnDraw()中加入:

CBrush brush(TranslateColor(GetBackColor(),NULL));

 pdc->FillRect(rcBounds, &brush);

 pdc->SetTextColor(TranslateColor(GetForeColor(),NULL));

 pdc->SetBkMode(TRANSPARENT);

 CTime time = CTime::GetCurrentTime();

 CString str = time.Format("%H:%M:%S");

 pdc->TextOut(0,0,str);

4.運作一下,是不是看到了一個和本地機器保持同步的動态時間,這隻是實作了一個最基本的功能,下面依次介紹屬性,

方法和事件的添加方法.

5.屬性的添加,打開類向導對話框,選中AUTOMATION,單擊ADD PROPERTY按鈕,再下拉清單框中可以架構為我們設計好的幾個屬性,再這裡,我們BACKCOLOR和FORECOLOR這兩個屬性,分别表示控件的背景顔色和文本顔色.編譯後用ACTIVEX  TEST CONTAINER測試效果.

6.方法的添加.打開類向導對話框,選中AUTOMATION,單擊METHOD,外部名字和類中的方法名字都是HELLO,函數類型VOID,系統會自動添加HELLO()函數,再裡面加入MESSAGEBOX("HELLO WORLD!');

7.事件的添加.打開類向導對話框,選中,單擊ACTIVEX EVENTS,在一個下拉例表框中選入CLICK,這樣當這個控件被另外的應用程式使用時,就可以對這個事件添加消息響應函數,有興趣的朋友可以試下.