MFC中为按钮添加图片,图标

本文详细解析了在使用VC++创建对话框(Dlg)时,如何正确添加按钮并设置其属性,避免常见错误。通过案例分析,阐述了在Dlg.h和Dlg.cpp文件中声明和实现按钮成员变量的正确方式,以及如何在OnInitDialog()函数中使用这些变量,最终实现了按钮显示图片和文字的功能。文章最后讨论了一个常见的误解和解决方案,即将派生类的头文件错误地添加到Dlg.cpp文件中而非头文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,在dlg中添加button,并设置按钮属性如下图:

 

2,完成之后,进入classwizard 添加button的成员变量:

3进入::OnInitDialog()函数中添加代码:

 HICON m_hicn1=AfxGetApp()->LoadIcon(IDI_ICON1);  
 m_button1.SetIcon(m_hicn1);

完成,运行即可。

 

我在csdn中看到了其他认得例子,如http://download.youkuaiyun.com/detail/yantao8612/3398429(vc6.0)和

http://download.youkuaiyun.com/detail/yangzhenglun/2452217(vc++ 2005)

这两个例子,跟我上面提到的不是一个原理,他们在里面新建一个button类的派生类,新类里添加了很多成员函数,这两个例子的效果更好(我上面写的方法,按钮上只能是图片,不能添加文字)。

      我照他们做的却遇到了错误,在为button添加成员变量时,编译出错。错误如下:

c:\users\administrator\documents\vc 6.0\pic2\pic2dlg.h(27) : error C2146: syntax error : missing ';' before identifier 'm_button1'
c:\users\administrator\documents\vc 6.0\pic2\pic2dlg.h(27) : error C2501: 'ImageButton' : missing storage-class or type specifiers
c:\users\administrator\documents\vc 6.0\pic2\pic2dlg.h(27) : error C2501: 'm_button1' : missing storage-class or type specifiers

一直以为是button类的派生类的问题,今天细致一看,恍然大悟,我把派生类的头文件添加在了dlg.cpp文件里了,而不是放在dlg.h头文件中,试想在dlg.h中声明派生类的对象而不包含它的头文件,当然报错啦!(一件简单的c++问题)

 

呜呼,哀哉!这么一个问题折磨了我好几天!

另外:http://hi.baidu.com/lechie/blog/item/008c103b868cf5e815cecb37.html中写的很不错。我在上面是照着他第一个方法写的。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值