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,这样当这个控件被另外的应用程序使用时,就可以对这个事件添加消息响应函数,有兴趣的朋友可以试下.