先给大家推荐两个ICON,PNG图标库网站:http://sc.chinaz.com/tubiao/RuanJianTuBiao.html(图片多,相当时尚,进去之后你会吃惊,这些就是你想要的) http://www.easyicon.cn/(特点:图片多!好多!相当多!)
要设计一个漂亮的按钮,要么搞成位图按钮,要么加ico图片,但是那样文字就没法显示了,除非把文字先写到图片上。
1.a. 先说位图按钮(bmp图片的)(简单的说)
Onpaint里加:
HBITMAP hBitmap;
hBitmap = (HBITMAP)::LoadImage(
NULL,
".\\images\\text_01.bmp", // 图片相对路径
IMAGE_BITMAP, // 图片格式
0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
然后:((CButton *)GetDlgItem(IDC_BUTTON_TEXT_01))->SetBitmap(hBitmap); //随便加哪里,Init 里也行
b.如果用CBitmapButton 就只需在 .h文件中加CBitmapButtonm_soundBtn;
属性设置为Owner Draw,顺便设置一下Modal Frame 为 true 好看一些
然后在OnInitDialog() 中加:m_btnUp.LoadBitmaps(IDB_BUTTON_UP_R, IDB_BUTTON_UP_S, IDB_BUTTON_UP_F, NULL);//后面的三个参数也可以是图片,分别表示按下,获得焦点,按钮不可用。
然后,做了8个方向按钮,效果是这样滴:按下 、 跟获得焦点 是另外的图。
c.
1. 打开BITMAP按钮的属性页,在Style中选中Bitmap。
2. 对话框类的头文件中定义成员变量CButton
m_IconBtn;
3.创建位图资源:位图资源:IDB_BITMAPBUTTON
4.在初始化中加入如下代码:
//对应于位图按钮
…
HBITMAP hBmp=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAPBUTTON));
m_BmpBtn.SetBitmap(hBmp);
2.再来一个ico图标的:(居中,但是掩盖了文字)
先在.h里声明:HICON m_hicn1(不在头文件里声明就要加就要在最后加m_hicn1.Detach();)
m_hicn1=AfxGetApp()->LoadIcon(IDI_ICON1);
m_button_text_01.SetIcon(m_hicn1);
3. 关于自绘位图按钮:http://www.codeproject.com/KB/buttons/XButtonXP.aspx
http://www.codeproject.com/KB/buttons/FooButton.aspx
4.最后是加bmp图片,并且与文字同时显示,本人找了好久才弄明白。
首先要用到codejockXtreme ToolkitPro 关于它的使用,参照:http://blog.csdn.net/abidepan/article/details/7893632
下载:http://download.csdn.net/detail/abidepan/4538677
准备工作做好之后,开始重载button
如button_01 之前关联控件变量m_button_01,代码是这样的:CButtonm_realPlayPageBtn;
我们要做的就是把CButton 改成CXTPButton。
然后在Dlg::OnInitDialog()里:m_realPlayPageBtn.SetBitmap(0, IDB_REALPALY);; //加bmp图片
其他的button类似以上代码。 做好的样子是这样的:
5.当然还有其他方法,不太会,以后慢慢学。实习生伤不起啊~
树控件加图标:http://blog.csdn.net/abidepan/article/details/7922417
标题栏加图标:http://blog.csdn.net/abidepan/article/details/7922402
6、今天有做了个静音的按钮,是在 4 的基础上做的,记录一下。效果是这样的。
在 上面 4 的基础上,在头文件中加:
afx_msg void OnBnClickedButtonSound();
bool click; //定个标记
然后 ON_BN_CLICKED(IDC_BUTTON_SOUND, &CFuncPannelDlg::OnBnClickedButtonSound)
再然后 :
void CFuncPannelDlg::OnBnClickedButtonSound()
{
// TODO: 在此添加控件通知处理程序代码
if (click)
{
m_soundBtn.SetBitmap(0, IDB_SILENCE); //就是上面的第二张图
click = false;
}
else
{
m_soundBtn.SetBitmap(0, IDB_SOUND); // 上面的第一张图
click = true;
}
}
分享到:
相关推荐
能够在按钮上显示图标和文字,用到了CButton中的CButtonST类。在CButtonST类中对DrawItem函数进行重载,实现绘制图标的功能。
创建CButton类的派生类CImageButton从而在普通按钮上实现图标和文本共存的效果
MFC 按钮上显示png图片, 以及文本
MFC基本对话框程序,封装好了一个按钮类,重绘按钮控件,改变按钮颜色;
mfc LISTCONTROL控件上增加checkbox控 增加显示图标的功能,VC 6.0 MFC
MFC按钮上的 各种特效,
在MFC中向ListCtrl的subItem0添加icon图标,用定时器定时去改变图标。
MFC制作按钮,设置颜色
在按钮上使用位图和文字在按钮上使用位图和文字
C++ MFC 实现按钮BUTTON形状的改变(三角形),欢迎讨论!
MFC 菜单项 图标
非常强大的按钮操作类,功能齐全,是系统自己封装的按钮的完美扩展
mfc颜色按钮Demo
MFC常用ICON格式图标
MFC的自绘按钮,带图标,不会自绘的可以直接拿到项目中使用,只需改动一点点!我的自己写的测试程序,简单易懂。
在资源中有一个设置透明按钮的类。和一个简单的实例,自己写了一个简单用法的介绍。 类的用法相当简单。只要会复制粘贴即可。
MFC添加在标题栏的按钮控件,包含头文件和CPP文件就可以使用。派生自CButton类。所给的文件是一个MFC工程,不妨先运行试试看看效果!
MFC 动态添加按钮,并有响应函数 动态添加图片
本实例继承 CButton 实现一个自绘按钮的控件,可以显示 PNG 图片,需要依赖 GDI+ 库。
自绘图标按钮,可添加bitmap,icon图标,改变背景,字体颜色及大小,功能挤全