【MFC】vs2013_MFC使用文件之15.mfc 按钮CBitmapButton的使用
本文是基于对话框的
博文基于 无幻 的博文为基础写的 http://blog.csdn.net/akof1314/article/details/4951836
笔者使用mfc撑死2个星期,不过这是有c++基础的前提下接触mfc,昨天看到了网上对qt creator的评论,感觉好高大上,回去试了一下后发现,qt需要mfc的基础,若是直接接触qt的话会比较难,毕竟mfc是在vs的平台下,大家学起来会比较顺手。
回到正题,今天研究了下怎么使用mfc中的位图按键,发现实现方法挺多,但是对于小白来说,很多作者认为简单的都会略过,恰巧那些简单的就是我不会的,结果又看不懂。除了mfc自有的CBitmapButton外,在网上还看到有关于CButtonST的使用,应该是会比CBitmapButton简单,笔者看的是CBitmapButton,那这里就不讲CButtonST。
两位csdn博主对CButtonST使用的链接:
DoubleLi: http://www.cnblogs.com/lidabo/archive/2012/12/17/2821122.html
wqvbjhc: http://blog.csdn.net/wqvbjhc/article/details/12580669
首先 会用到以下CBitmapButton类的函数
LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);
//载入图片 IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE 这四个均为bitmapID
BOOL LoadBitmaps(
LPCTSTR lpszBitmapResource,
LPCTSTR lpszBitmapResourceSel = NULL,
LPCTSTR lpszBitmapResourceFocus = NULL,
LPCTSTR lpszBitmapResourceDisabled = NULL
);
bitmap的载入





回到资源视图就可以看到
资源视图打开的方法:视图-》其他窗口-》资源视图
SubclassDlgItem(按钮ID, this);//关联按钮
SizeToContent();//让按钮随图片大小变化
GetDlgItem(按钮ID)->EnableWindow(FALSE);//开启按钮的禁止状态
现在开始做
1.在对话框出拖入一个按钮,
,其ID为IDC_BUTTON1
2.设置按钮属性中的Owner Draw为TRUE
3.在::OnInitDialog();前添加 CBitmapButton m_btnX1;//必须放在函数外面才能正常实现
4.导入按钮位图,这里四幅图大小要一致,以下是四种状体的按钮,若读者要实验这次的设计的话,可以右键另存为,然后用“画图”把png格式的另存为bmp格式的。在资源视图,右键“添加资源”,“导入”以下图片:

5.初始化工作,在对话框的OnInitDialog()函数里面添加以下代码:
m_btnX1.LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);//
// 也可以只加一个ID资源;
m_btnX1.SubclassDlgItem(IDC_BUTTON_TEST2, this);
m_btnX1.SizeToContent();
到这里已经完成了位图按钮的实现,编译运行可以看到结果。
其实这个时候你能看到后三幅图的
的效果,为什disable的看不到,是因为这个禁止的状态你没有打开,打开需要
GetDlgItem(按钮ID)->EnableWindow(FALSE); //为false是是开启禁止状态,为true时则是关闭状态
这时候四个图标你都能看到了。
如果你想做鼠标移动到按钮上,按钮会变其他图案的效果,请看 无幻 http://blog.csdn.net/akof1314/article/details/4951836/;
本文用到的资料: 只想说一句 csdn太强大了。
http://blog.csdn.net/leixiaohua1020/article/details/12753967
http://blog.csdn.net/akof1314/article/details/4951836/
http://bbs.csdn.net/topics/100184465
https://msdn.microsoft.com/en-us/library/6y6acs49(v=vs.120).aspx
【MFC】vs2013_MFC使用文件之15.mfc 按钮CBitmapButton的使用的更多相关文章
- MFC 与Excel文件的交互操作
假日快要结束了.带着沉重的心情写下之前关于MFC与Excel文件交互的总结. 因为VS的版本号不同可能在操作上有些差异.所以在此指明下本篇文章的project环境为VS2013,也建议大家用最新的. ...
- stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编
sstdafx.h.stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要 ...
- VS2010 MFC中 创建文件夹及文件判空的方法
1. MFC中 创建文件夹的方法如下: CString strFolderPath = "./Output"; //判断路径是否存在 if(!PathIsDirectory(str ...
- MFC打开/保存文件对话框:CFileDialog
MFC打开/保存文件对话框:CFileDialog CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDial ...
- MFC原理第一讲.MFC的本质.以及手工编写MFC的程序
MFC原理第一讲.MFC的本质.以及手工编写MFC的程序 PS: 这个博客属于复习知识.从头开始讲解. 在写这篇博客之前.已经写了3篇MFC的本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC ...
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1 2.在主程序的.h文件中加入变量: CToolBar m_toolbar;CImageList ...
- VS2010/MFC对话框:文件对话框
文件对话框 上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...
- MFC关于.rc文件 .rc2文件
.rc文件和.rc2文件 c和rc2都是资源文件,包含了应用程序中用到的所有的资源. 两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改; 而rc2中的资源不能在VC的 ...
- MFC读取XML文件并解析
现在经常会对XML文件进行操作,怎么在MFC下去读和解析XML文件呢?直接上代码: 首先得等在stdafx.h中加入这句,以引入MSXML命名空间 #import <msxml3.dll> ...
随机推荐
- html-2, a img ul li ol dl dt dd 标签与列表标签的简单使用
<!-- a: a{ /*清除a标签的下划线*/ text-decoration: none; } (1)超链接 href 超链接的地址 target: _self 默认 在当前中打开链接地 ...
- PAT 天梯赛 L1-042. 日期格式化 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-042 AC代码 #include <iostream> #include <cstdio&g ...
- 新机git及github sshkey简单配置
新机git简单配置,毕竟不常用,不用每次都查1.安装gitwindows:https://git-scm.com/download/winubuntu: apt install git 2.全局配置 ...
- 2062326 齐力锋 实验一《Java开发环境的熟悉》实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构 班级: 1623 姓名: 齐力锋 学 ...
- 伸展树基础(Splay)
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3948 Solved: 1627 [Submit][St ...
- SpringBoot 通用返回类设计
在项目中通常需要为前端设计通过的返回类,返回的格式为: { "status": "success", "data": {...} } 定义通 ...
- 修改Maven源为阿里巴巴的镜像
在C:\Users\Administrator\.m2创建setting.xml文件,内容如下 <settings xmlns="http://maven.apache.org/SET ...
- struts2——多文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Windows系统变量列表
%ALLUSERSPROFILE% : 列出所有用户Profile文件位置. %APPDATA% : 列出应用程序数据的默认存放位置. %CD% : 列出当前目录. %CLIENTNAME% : ...
- python学习笔记(threading多线程)
博主昨天优化了接口框架想着再添加些功能 想到对接口的性能压力测试 在工作过程中之前都是使用的工具 如:loadrunner.jmeter 想着这次准备用python实现对接口的性能压力测试 首先要实现 ...