MFC编写漂亮的按钮,详细操作

       快一年多没有写过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

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于使用MFC编写画图程序和使用VS来实现相同功能的程序来说,它们都有各自的优缺点。 使用MFC编写画图程序,可以使用MFC提供的类库来方便的实现用户界面,如工具栏、菜单、状态栏等,同时也可以使用MFC提供的绘图API来实现图形的绘制,如直线、矩形、多边形、圆等。MFC编写画图程序的优点是开发效率高,开发周期短,且可扩展性也较好。 而使用VS来实现画图程序,则更加自由和灵活。VS提供的引擎和库很多,可根据需要选择合适的库进行开发。相比MFC,使用VS编写画图程序可实现更多的效果,甚至可以开发自己的扩展库和功能。 总之,无论使用MFC编写画图程序还是使用VS编写画图程序,都有其优点和缺点。选择哪种方式取决于具体的需求和开发者的技术水平。基于MFC的画图程序适合于快速开发和初学者,而使用VS编写画图程序则更适合有一定编程技能和较高需求的开发者。 ### 回答2: 在编写画图程序时,使用VS和MFC都可以实现该功能。但两者有着不同的优点和适用场景。 对于使用VS编写画图程序,由于它是一个IDE(集成开发环境),能够提供丰富的工具和调试功能,使得程序的开发更加高效和便捷。同时,VS还支持多种编程语言,能够灵活地适应不同的项目需求。然而,相对于MFC,VS对于图形界面的构建和操作较为繁琐,需要开发者较强的编程能力。 使用MFC编写画图程序,则可以利用其强大的GUI库和类库,轻松实现设备无关性,同时也能够在图形界面构建中提供一些基本的组件,如按钮、编辑框、滚动条等等。而且MFC也提供了大量的绘图类和函数,使得开发者能快速实现各种各样的图形功能。但使用MFC编写画图程序,由于MFC较为复杂,需要开发者掌握MFC的类库和功能库。 总的来说,VS和MFC都提供了对画图程序开发的支持,开发者可以在根据项目需求,灵活选择合适的编程工具。 ### 回答3: 使用MFC编写画图程序的最大优势在于它可以充分利用Windows系统上丰富的图形界面库和API,具有良好的平台兼容性,并且易于开发和维护。MFC库提供了大量的GUI组件,例如按钮、菜单、滚动条、文本框等,方便开发者快速构建应用程序界面。同时,MFC也提供了强大的绘图API和图形设备接口(GDI),使得绘制各种图形和图像变得简单。 与此相反,VS自带的画图功能虽然也能实现简单的图形绘制,但是其功能却十分有限,无法满足高级图像处理需求。而MFC编写的画图程序则可以轻松实现图像缩放、旋转、变形、颜色调整等高级功能。此外,MFC也支持许多图像格式的导入和导出,如BMP、JPEG、PNG等,方便用户在不同的平台上进行图像处理和转换。 当然,在使用MFC编写画图程序时,开发者需要掌握一定的C++编程技能,熟悉MFC的API和组件之间的交互关系。相比而言,VS自带的画图工具更加简单易用,不需要编写代码,但是其功能过于简单,无法满足高级需求。因此,对于开发专业的图像处理软件的开发者而言,使用MFC编写画图程序是一种更加灵活和高效的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值