主要是通过 OwnerDraw属性实现。
1.运行AppWizard生成一个基于对话框的test工程,在对话框中加入一个CButton控件。在CButton控件的General属性页将控件的ID改为IDC_3DTEXTBTN,Caption改为“谁与争疯”,在控件Styles属性页选中OwnerDraw,其余设置保持默认。
2.用classwizard创建一个新类:C3dTextButton,基类为CButton。
3.为C3dTextButton类添加一个protected的函数void Draw(CDC* pDC, const CRect& rect, UINT state)。如下所示编写代码:
void C3dTextButton::Draw(CDC *pDC, const CRect &rect, UINT state)
{
CString text;
GetWindowText(text);
int l=text.GetLength();
CRect rectClient=rect;
//获得控件的字体
CFont* pFont=GetFont();
//确定所选字体有效高度和宽度
LOGFONT logfont;
pFont->GetObject(sizeof(LOGFONT),&logfont);
if(logfont.lfHeight==0)logfont.lfHeight=20;
logfont.lfWidth=0;
//宽度设为0,宽度值由高度确定
logfont.lfWeight=1000;
logfont.lfEscapement=logfont.lfOrientation=0;
CFont tryfont;
VERIFY
C++ VC 开发3D风格按钮控件
最新推荐文章于 2022-12-25 11:21:02 发布
本文介绍如何通过C++和VC的OwnerDraw属性来创建具有3D效果的自定义按钮控件。步骤包括设置对话框、创建自定义按钮类、重载DrawItem函数以及实现3D文本效果的绘制代码。
摘要由CSDN通过智能技术生成