PNG透明背景按钮的实现(MFC)
来源:互联网 发布:java 程序包不存在 编辑:程序博客网 时间:2024/05/18 03:27
问题描述:
当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png"
开发环境为VS2010。
解决办法:
使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton::SetImage完成按钮背景图片设置。
@1.引入GDI+库
由于是按钮上使用的是PNG图,第一步是将PNG图装载进来,这一步建议使用GDI+库,关于GDI+库的引入,请参看http://blog.csdn.net/cashey1991/article/details/7407425,其中有详尽描述)
@2.对话框中添加Bitmap成员变量作为按钮背景图的图片对象,假设变量名为m_Bg1, m_Bg2
@4.在构造函数中添加m_Bg1, m_Bg2的初始化代码
- CMainDlg::CMainDlg(CWnd* pParent /*=NULL*/)
- : CDialogEx(CMainDlg::IDD, pParent),
- m_Bg1(L"bg1.png"), mBg2(L"bg2.png")
- {
- ....
- }
CMainDlg::CMainDlg(CWnd* pParent /*=NULL*/): CDialogEx(CMainDlg::IDD, pParent),m_Bg1(L"bg1.png"), mBg2(L"bg2.png"){ ....}
@3.在工具箱中选择MFC Button Control,在对话框中进行添加,假设ID号为IDC_BTN_PNGBUTTON
@4.设置添加的MFC Button Control的Style为无边框,Visible为True,Transparent为True,Image Type为无
@5.在对话框的OnInitDialog()函数中添加代码:
- BOOL CMainDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- ....
- CMFCButton *pMfcButton = (CMFCButton *)GetDlgItem(IDC_BTN_PNGBUTTON);
- HBITMAP hBmp, hBmpHot;
- m_Bg1.GetHBITMAP(NULL, &hBmp);
- m_Bg2.GetHBITMAP(NULL, &hBmpHot);
- pMfcButton->SetImage(hBmp, TRUE, hBmpHot);
- pMfcButton->m_bTransparent = TRUE; // 设置按钮为透明的
BOOL CMainDlg::OnInitDialog(){CDialogEx::OnInitDialog();....CMFCButton *pMfcButton = (CMFCButton *)GetDlgItem(IDC_BTN_PNGBUTTON);HBITMAP hBmp, hBmpHot;m_Bg1.GetHBITMAP(NULL, &hBmp);m_Bg2.GetHBITMAP(NULL, &hBmpHot);pMfcButton->SetImage(hBmp, TRUE, hBmpHot);pMfcButton->m_bTransparent = TRUE; // 设置按钮为透明的
编译程序即可查看到已经实现了PNG透明按钮效果
- PNG透明背景按钮的实现(MFC)
- PNG透明背景按钮的实现(MFC)
- PNG透明背景按钮的实现(MFC)
- PNG透明背景按钮的实现(MFC)
- PNG透明背景按钮的实现
- MFC png透明按钮实现
- opencv 实现PNG的透明背景
- MFC透明位图(2)--PNG的实现
- MFC透明位图(2)--PNG的实现
- MFC透明位图(2)--PNG的实现
- MFC 按钮上贴png图片 边框为透明的
- MFC PNG作背景 透明边框GDI+
- CSS实现PNG图片背景透明效果
- 在dreamweaver里实现PNG背景透明
- vb.net简单实现透明窗体显示出背景透明的png
- 处理网页中png的透明背景
- MFC的PNG图片按钮
- png 设置透明背景
- 关于VS包含*view.h文件出现错误的解决办法
- VC6.0中如何彻底删除一个已添加的类
- 第三届蓝桥杯预赛java组第三题
- bionic库增加Andorid系统调用
- gdb参数及命令详解 (已整理) core dump调试
- PNG透明背景按钮的实现(MFC)
- Hibernate查询结果排序
- oracle 10g 下载方法
- python性能测试,用实例告诉你phthonic的意义!
- java简介掌握的重点
- Tomcat启动时报错:java.net.BindException: Permission denied <null>:80
- 性能分析 nmon
- Storm 的安装配置
- Linux基本命令使用