第24節(1 / 3)

regsvr32 /u....卸載控件

STDAPI DllRegisterServer(void)將控件信息寫入注冊表中

STDAPI DllUnregisterServer(void)卸載注冊信息。

製作一個時間控件,在

void CClockCtrl::OnDraw(CDC* pdc, const CRect& rcBounds,

const CRect& rcInvalid)中添加以下代碼:

CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds,&brush);

pdc->SetBkMode(TRANSPARENT);

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

//為控件設置屬性,必須在MFC ClassWizared中為控件添加屬性,上麵幾 //行代碼才有用

CTime time=CTime::GetCurrentTime();

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

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

這樣就能做出一個靜態的時間控件,如果我們想使控件實時顯示時間,需要添加兩個消息響應函數 WM_CREATE,WM_TIMER.

代碼:

int CClockCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

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

return -1;

// TODO: 在此添加您專用的創建代碼

SetTimer(1,1000,NULL);

return 0;

}

void CClockCtrl::OnTimer(UINT nIDEvent)

{

// TODO: 在此添加消息處理程序代碼和/或調用默認值

Invalidate(); //立即引起窗口重繪

//也可以使用InvalidateControl(); //強製窗口重繪,效果相同

COleControl::OnTimer(nIDEvent);

}

要修改控件的背景色前景色和字體顏色

在OnDraw中添加

CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds,&brush);

pdc->SetBkMode(TRANSPARENT);

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

ActiveX控件的四種屬性

Stock:為每個控件提供的標準屬性,如字體或顏色。

Ambient:圍繞控件的環境屬性——已被置入容器的屬性。這些屬性不能被修改,但控件可以使用它們調整自己的屬性。