C++ VC 开发3D风格按钮控件

本文介绍如何通过C++和VC的OwnerDraw属性来创建具有3D效果的自定义按钮控件。步骤包括设置对话框、创建自定义按钮类、重载DrawItem函数以及实现3D文本效果的绘制代码。
摘要由CSDN通过智能技术生成

主要是通过 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值