博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC中 给按钮添加图片的方法
阅读量:4303 次
发布时间:2019-05-27

本文共 1434 字,大约阅读时间需要 4 分钟。

方法一:直接给CButton加图片。

1.在资源编辑器中添加一个按钮,把它的Bitmap属性设为true

2.在按钮上点右键,添加一个变量m_Btn(CButton类型的)

3.将图片导入到资源管理器中,ID为IDB_BITMAP1

4.然后在初始化中加入如下代码:

   HBITMAP hBmp=::LoadBitmap(AfxGetInstanceHandle(),  MAKEINTRESOURCE(IDB_BITMAP1));   

   m_Btn.SetBitmap(hBmp);

 

   如果是加载非资源图片的话,就在初始化中加入下代码:

   HBITMAP hBitmap = (HBITMAP)::LoadImage( 

                 NULL,  

                 "E://a.bmp",                       // 图片全路径 

                 IMAGE_BITMAP,                   // 图片格式 

                 0,0,  

                 LR_LOADFROMFILE|LR_CREATEDIBSECTION);  // 注意LR_LOADFROMFILE

   然后获得按钮句柄并调用SetBitmap即可。

这样按钮上的文字就被图片取而代之了,但是我感觉不太好看。

 

方法二:利用CBitmapButton,可以很容易地做出点动态的效果。

1.在资源编辑器中添加一个按钮.

     把它的Owner Draw属性设为true.

     把它的ID设为IDC_BUTTON1.

     把它的Caption改成BITMAP_BUTTON

2.准备4张图片(只准备其中一两张也可以),添加到资源管理器中

     正常状态时的按钮图片     的ID设为"BITMAP_BUTTONU"

     鼠标按下时的按钮图片     的ID设为"BITMAP_BUTTOND"

     鼠标点击过后的按钮图片  的ID设为"BITMAP_BUTTONF"

     按钮失效后的图片          的ID设为"BITMAP_BUTTONS"

     注意:一定要左右都带双引号!

     其实就是 "按钮的Caption+U或D或F或S"

3.在dlg的头文件里添加一个CBitmapButton类型的成员变量m_bbtn

4.在初始化中加入以下代码

   m_bbtn.AutoLoad(IDC_BUTTON1, this);

 

注意:如果对按钮(CButton)用向导添加了Control变量的话,把DDX_Control(pDX, IDC_BUTTON1, m_btn1);这一行注释掉就可以了。

 

方法三:使用CMFCButton

    1、在对话框编辑界面中,拖入一个button控件,改资源ID号为IDC_BUTTON_TEST。

    2、然后在CXXXDlg::OnInitDialog()中添加如下代码:

       CMFCButton * button1 = new CMFCButton; 

       button1->Create(_T("Test Button"), 
       WS_VISIBLE, 
       CRect(160, 15, 280, 150), 
       this, 
       IDC_BUTTON_TEST); 
       // 加载图片 
       button1->SetImage(IDB_BITMAP1);     //IDB_BITMAP1为自己导入的图片的ID

 

  运行会发现出现了两个按钮,那么在对话框编辑界面中把Button1的Visible属性设为False便可以了。

你可以用CBitmapButton类,你可以在对话框上添加一个按钮,让后在代码声明的部分把CButton改成CbitMapButton,然后再初始化的时候调用Setbitmap就可以做出你要的效果了。

转载地址:http://himws.baihongyu.com/

你可能感兴趣的文章
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>