MFC3d立体按钮制作

1、本程序基于前期我的博客文章MFC用CButtonST类实现图片透明按钮(免费源码下载)

2、添加CeXDib.cpp CeXDib.h ShadeButtonST.cpp ShadeButtonST.h到项目文件夹下,和FileView中如图。

3、在ButtonShadeDlg.h中添加代码

cpp 复制代码
#include "ShadeButtonST.h"
#include "BtnST.h"


class CButtonShadeDlg : public CDialog
{
// Construction
public:
	CButtonShadeDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CButtonShadeDlg)
	enum { IDD = IDD_BUTTONSHADE_DIALOG };
	CButtonST   m_btnPrint;
	CShadeButtonST	m_btnCancel;
	CShadeButtonST	m_btnOK;
	//}}AFX_DATA
...
}

4、在ButtonShadeDlg.cpp中添加代码

cpp 复制代码
void CButtonShadeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CButtonShadeDlg)
DDX_Control(pDX, IDC_BUTTON1, m_btnPrint);
DDX_Control(pDX, IDCANCEL, m_btnCancel);
DDX_Control(pDX, IDOK, m_btnOK);
	//}}AFX_DATA_MAP
}


BOOL CButtonShadeDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
m_btnPrint.SetIcon(IDI_ICON_Print);    
m_btnPrint.SetAlign(CButtonST::ST_ALIGN_VERT);
	m_btnOK.SetShade(CShadeButtonST::SHS_HARDBUMP);
	m_btnCancel.SetShade(CShadeButtonST::SHS_HARDBUMP);
...
}

运行程序

相关推荐
IT19954 分钟前
C++使用“长度前缀法”解决TCP“粘包 / 拆包”问题
服务器·网络·c++·tcp/ip
Tipriest_21 分钟前
旋转矩阵,齐次变换矩阵,欧拉角,四元数等相互转换的常用代码C++ Python
c++·python·矩阵
hz_zhangrl32 分钟前
CCF-GESP 等级考试 2025年9月认证C++六级真题解析
c++·算法·青少年编程·程序设计·gesp·2025年9月gesp·gesp c++六级
兵哥工控1 小时前
MFC用高精度计时器实现五段时序控制器
c++·mfc·高精度计时器·时序控制器
眠りたいです2 小时前
基于脚手架微服务的视频点播系统-服务端开发部分(补充)文件子服务问题修正
c++·微服务·云原生·架构
ULTRA??2 小时前
各种排序算法时间复杂度分析和实现和优势
c++·python·算法·排序算法
博语小屋2 小时前
简单线程池实现(单例模式)
linux·开发语言·c++·单例模式
墨雪不会编程2 小时前
C++基础语法篇八 ——【类型转换、再探构造、友元】
java·开发语言·c++
yuuki2332332 小时前
【C++】内存管理
java·c++·算法
刃神太酷啦2 小时前
Linux 进程核心原理精讲:从体系结构到实战操作(含 fork / 状态 / 优先级)----《Hello Linux!》(6)
java·linux·运维·c语言·c++·算法·leetcode