MFC 之 CButton 控件重绘(GDI+篇)

本文介绍了如何使用GDI+在MFC中实现CButton控件的自定义重绘,包括透明和不规则形状的按钮。作者提供了三种类型的按钮实现:普通型、菜单型和静态型,并分享了关键代码和完整工程资源链接。
摘要由CSDN通过智能技术生成

在写完MFC之CButton空间重绘(GDI篇)后我以为会很快就能把GDI+篇弄出来。结果出了点意外,效果总是有不满意的地方。弄了好几天,才弄出一个满意的效果来。同GDI篇一样,实现了3种类型的按钮,以满足公司项目的需求,分别是下面三种类型:1.普通型按钮 2.菜单型按钮 3.静态按钮。(不规则,透明等效果完美的实现)

下面贴代码:

公共头文件(public.h):

#pragma once

#include "stdafx.h"
#include <atlimage.h>

//按钮的状态
enum
{
	CTRL_NOFOCUS = 0x01,			//普通
	CTRL_FOCUS,						//mousemove
	CTRL_SELECTED,					//buttondown
	CTRL_DISABLE,					//无效
};

//图片形式
enum
{
	BTN_IMG_1 = 1,					//
	BTN_IMG_3 = 3,					//3分图(1个图片内有3小图,下同)
	BTN_IMG_4 = 4,					//4分图
};

//按钮类型
enum
{
	BTN_TYPE_NORMAL = 0x10,			//普通BTN
	BTN_TYPE_MENU,					//菜单类型的BTN
	BTN_TYPE_STATIC,				//静态类型的BTN
};

对于上面所谓的图片形式分别是指下面三种:

1.(BTN_IMG_1)

2.(BTN_IMG_3)

3.(BTN_IMG_4)


头文件(PngButton.h)

#if !defined(AFX_PNGBUTTON_H__F33C59EA_E493_49CD_96C0_9D37FDD09749__INCLUDED_)
#define AFX_PNGBUTTON_H__F33C59EA_E493_49CD_96C0_9D37FDD09749__INCLUDED_

#include "Public.h"

#if _MSC_VER > 1000
#pragma once
#endif 

class CPn
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值