孙鑫 VC++深入详解第18课——ActiveX控件编程

1.ActiveX控件编程的思路

①表达:OnDraw

②属性设置:

③方法设置:

④事件设置:


2.集体过程:

①显示时间:在OnDraw()中

	CTime time = CTime::GetCurrentTime();	
	CString strTime = time.Format("%H:%M:%S");
	pdc->TextOut(0,0,strTime);

②设置定时器:

 OnCreate()中添加SetTimer;OnTimer()中添加Invalidate();

③属性设置:

添加默认属性:设置前景色/背景色

	CBrush brush(TranslateColor(GetBackColor()));
	pdc->FillRect(rcBounds,&brush);
	pdc->SetBkMode(TRANSPARENT);
	pdc->SetTextColor(TranslateColor(GetForeColor()));
添加自定义属性提示框:

BEGIN_PROPPAGEIDS(CClockActiveXCtrl, 2)
	PROPPAGEID(CClockActiveXPropPage::guid)
	PROPPAGEID(CLSID_CColorPropPage)
END_PROPPAGEIDS(CClockActiveXCtrl)

添加自定义属性:

void CClockActiveXCtrl::OnUpdateIntervalChanged(void)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	// TODO: 在此添加属性处理程序代码
	if (m_UpdateInterval < 1000 || m_UpdateInterval > 5000)
	{
		m_UpdateInterval = 1000;
	} 
	else
	{
		m_UpdateInterval = (m_UpdateInterval/1000)*1000;
	}
	KillTimer(1);
	SetTimer(1,m_UpdateInterval,NULL);
	SetModifiedFlag();
}

添加方法:

void CClockActiveXCtrl::Hello(void)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	AfxMessageBox(_T("Hello World"));
	// TODO: 在此添加调度处理程序代码
}

添加事件:

在×××Ctrl类中添加事件:NewMinute

	if (time.GetSecond() == 0)
	{
		NewMinute();
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值