先给大家推荐两个ICON,PNG图标库网站:http://sc.chinaz.com/tubiao/RuanJianTuBiao.html(图片多,相当时尚,进去之后你会吃惊,这些就是你想要的)
要设计一个漂亮的按钮,要么搞成位图按钮,要么加ico图片,但是那样文字就没法显示了,除非把文字先写到图片上,利用电脑自带的画图软件即可搞定,效果也是很不错的。
1.a. 先说位图按钮(bmp图片的)(简单的说)
Onpaint里加:
1. HBITMAP hBitmap;
2.
3. hBitmap = (HBITMAP)::LoadImage(
4. NULL,
5. ".\\images\\text_01.bmp", // 图片相对路径
6. IMAGE_BITMAP, // 图片格式
7. 0,0,
8. LR_LOADFROMFILE|LR_CREATEDIBSECTION);
然后:((CButton *)GetDlgItem(IDC_BUTTON_TEXT_01))->SetBitmap(hBitmap); //随便加哪里,Init 里也行
b.如果用CBitmapButton 就只需在 .h文件中加 CBitmapButton m_soundBtn;
属性设置为Owner Draw,顺便设置一下Modal Frame 为 true 好看一些
。
然后,做了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图标的:(居中,但是掩盖了文字)
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图片,并且与文字同时显示。
首先要用到codejock Xtreme ToolkitPro 关于它的使用,参照:
下载:
准备工作做好之后,开始重载button
如button_01 之前关联控件变量m_button_01,代码是这样的:CButton m_realPlayPageBtn;
我们要做的就是把CButton 改成 CXTPButton。
然后在Dlg::OnInitDialog()里: m_realPlayPageBtn.SetBitmap(0, IDB_REALPALY);; //加bmp图片
其他的button类似以上代码。 做好的样子是这样的:
5.当然还有其他方法,不太会,以后慢慢学~
树控件加图标:
标题栏加图标:
6、今天做了个静音的按钮,是在 4 的基础上做的,记录一下。效果是这样的。
在 上面 4 的基础上,在头文件中加:
afx_msg void OnBnClickedButtonSound();
bool click; //定个标记
然后 ON_BN_CLICKED(IDC_BUTTON_SOUND, &CFuncPannelDlg::OnBnClickedButtonSound)
再然后 :
1. void CFuncPannelDlg::OnBnClickedButtonSound()
2. {
3. // TODO: 在此添加控件通知处理程序代码
4. if (click)
5. {
6. m_soundBtn.SetBitmap(0, IDB_SILENCE); //就是上面的第二张图
7. click = false;
8. }
9. else
10. {
11. m_soundBtn.SetBitmap(0, IDB_SOUND); // 上面的第一张图
12. click = true;
13. }
14. }