如何在ActiveX控件中使用字体
2008-02-26 20:27:03 来源:WEB开发网修改OnDraw函数
修改后的OnDraw函数如下:
void CLabelCtrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid )
{
// TODO: Replace the following code with your own drawing code.
COLORREF colorBack=TranslateColor(GetBackColor());
COLORREF colorFore=TranslateColor(GetForeColor());
// GetBackColor(),GetForeColor()分别得到背景色和前景色
// GetBackColor(),GetForeColor()返回类型为OLE_COLOR
// TranslateColor函数将OLE_COLOR类型转换为COLORREF类型
CBrush brush(colorBack);
pdc->FillRect(rcBounds, &brush);
//背景色填充整个控件
pdc->SetBkMode(TRANSPARENT);
//设置透明背景色
pdc->SetTextColor(colorFore);
//前景色设置为字体颜色
const CString& strCaption = InternalGetText();
//获得库存属性Caption的值
CFont* pOldFont;
pOldFont = SelectStockFont(pdc);
//设备上下文中选择字体对象
RECT rect;
::CopyRect(&rect,rcBounds);
pdc->DrawText(strCaption,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
//单行,水平居中,垂直居中显示
pdc->SelectObject(pOldFont);
}
Label控件的制作已经完成了,您可以方便地改变字体的大小、类型、颜色以及控件的背景色。当然,您还可以进一步完善该控件,更加方便您的使用。
更多精彩
赞助商链接