快一年多没有写过MFC了,不过好多都还熟悉,今天一个好友问我mfc 的按钮如何写的好看点,今天写下来,给刚学习mfc的同学带来一个简单的例子,希望你能收获一点知识。
下面我们来上图吧:
MFC不像QT写的那么简单,本调用了别人重写的button类,类文件在下面链接:
链接:文件 提取码:y259
首先把文件中的4个文件放入到你刚创建的MFC的工程中:
上面是两个button按钮,尽量宽一点,对应的属性为:
加载图片到(图片在文件的包里):
在你对应的界面的头文件下添加:
#include "BtnST.h"
在对应的类里面添加:
class CbuttonTestADlg : public CDialogEx
{
// 构造
public:
CbuttonTestADlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_BUTTONTESTA_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CButtonST m_test;
CButtonST m_tes;
};
对应的cpp文件中找到OnInitDialog() 函数中:
m_test.SubclassDlgItem(IDC_BTN_1, this);
m_test.SetIcon(IDI_ICON1);
m_test.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(62, 62, 66));
m_test.DrawBorder(FALSE, FALSE);
m_test.DrawTransparent(TRUE);
m_tes.SubclassDlgItem(IDC_BTN_2, this);
m_tes.SetIcon(IDI_ICON2);
m_tes.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(62, 62, 66));
m_tes.DrawBorder(FALSE, FALSE);
m_tes.DrawTransparent(TRUE);
点击运行,可能会出现下面错误:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
解决方案:点击查看。
运行便可以写好按钮了,是不是非常的简单呢!
本程序例子使用是vs2015, 链接在下面,喜欢的可以一起学习。关注我,会有很多干货等着你。
链接:工程下载 提取码:6k5a