ActiveX 添加标准属性

本文详细阐述了在控件中添加属性并显示效果的方法,并介绍了如何新增属性页以增强用户交互体验。通过代码实例,展示了背景色填充与文字前景色的应用,以及在Ctrl.cpp中扩展属性页的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个控件添加属性后 属性会出现在控件的接口中



在下拉列表中出现的属性 都是标准属性

为了显示出属性效果添加以下代码 功能是以背景色填充背景 以前景色写文字

void CMy0705BCtrl::OnDraw(
<span>			</span>CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
<span>	</span>if (!pdc)
<span>		</span>return;


<span>	</span>// TODO: Replace the following code with your own drawing code.
<span>	</span>//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
<span>	</span>//pdc->Ellipse(rcBounds);


<span>	</span>COLORREF color=this->TranslateColor(this->GetBackColor());
<span>	</span>CBrush brush(color);
<span>	</span>pdc->FillRect(rcBounds,&brush);<span>	</span>//区域填充背景色


<span>	</span>color=this->TranslateColor(this->GetForeColor());
<span>	</span>pdc->SetBkMode(TRANSPARENT);<span>	</span>//文字背景透明(不设置文字会有自己的小背景)
<span>	</span>pdc->SetTextColor(color);<span>		</span>//文字使用前景色


<span>	</span>CTime time=CTime::GetTickCount();
<span>	</span>CString str=time.Format("%H:%M:%S");
<span>	</span>int x=rcBounds.Width()/2-30;
<span>	</span>int y=rcBounds.Height()/2-4;
<span>	</span>;
<span>	</span>pdc->TextOutW(x,y,str);
}
在Ctrl.cpp中修改以下代码 功能是新增一个属性页  (属性页会在调试容器中 edit->prperty 中看到)

// TODO: Add more property pages as needed.  Remember to increase the count!
BEGIN_PROPPAGEIDS(CMy0705BCtrl, 2)		//+++++ 1->2
	PROPPAGEID(CMy0705BPropPage::guid)
	PROPPAGEID(CLSID_CColorPropPage) //+++++
END_PROPPAGEIDS(CMy0705BCtrl)
编译
用容器打开这个控件








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值