单文档中动态创建有图标的工具栏

在做项目的时候,需要去掉系统自带的工具栏,添加我们自己创建的工具栏,但是为了看上去美观,我们可以在工具栏上添加相应的图标,具体的实现方法如下:

1、在网上搜集资源图标(.ico格式)的,如果不好找,下面附件中会上传一部分我搜集的资源图标。

2、在资源视图中将需要的资源图标导入工程中。

3、在CMainFrame类中创建CToolBar和CImageList对象

  1. //装载工具栏上资源图片
  2. CImageList m_ImgList;
  3. //创建新的工具栏
  4. CToolBar m_newToolBar;
//装载工具栏上资源图片 
CImageList m_ImgList;
//创建新的工具栏
CToolBar m_newToolBar;

4、在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中添加如下代码:

  1. ......
  2. /去掉工具栏
  3. m_wndToolBar.ShowWindow(SW_HIDE);
  4. //设置自己的工具栏
  5. SetIcon(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)),TRUE);
  6. //加载资源图片
  7. m_ImgList.Create(32,32,ILC_COLOR24 | ILC_MASK,1,1);
  8. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_BIG));
  9. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_SMALL));
  10. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CHECK));
  11. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_USER_MAG));
  12. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATE));
  13. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATA_CHECK));
  14. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATE_ANYS));
  15. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CAR_INFO));
  16. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_LOCAL));
  17. m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_HELP));
  18. //设置右工具栏中有10个小按钮
  19. UINT Array[10];
  20. for(int i = 0; i < 11; i++)
  21. {
  22. //添加分隔符
  23. if(i == 3)
  24. {
  25. Array[i] = ID_SEPARATOR;
  26. }
  27. else
  28. {
  29. //代表其中按钮的地址(方面为其按钮添加消息响应函数)
  30. Array[i] = 9000+i;
  31. }
  32. }
  33. //创建工具栏
  34. m_newToolBar.Create(this);
  35. //设置按钮
  36. m_newToolBar.SetButtons(Array,11);
  37. //设置按钮图标文字
  38. m_newToolBar.SetButtonText(0,"放大");
  39. m_newToolBar.SetButtonText(1,"缩小");
  40. m_newToolBar.SetButtonText(2,"移动");
  41. m_newToolBar.SetButtonText(4,"账户管理");
  42. m_newToolBar.SetButtonText(5,"日志管理");
  43. m_newToolBar.SetButtonText(6,"数据查询");
  44. m_newToolBar.SetButtonText(7,"数据分析");
  45. m_newToolBar.SetButtonText(8,"车辆信息");
  46. m_newToolBar.SetButtonText(9,"定位");
  47. m_newToolBar.SetButtonText(10,"帮助");
  48. //设置按钮大小
  49. m_newToolBar.GetToolBarCtrl().SetButtonWidth(60,120);
  50. //将按钮和资源图标相关联
  51. m_newToolBar.GetToolBarCtrl().SetImageList(&m_ImgList);
  52. m_newToolBar.SetSizes(CSize(70,60),CSize(32,32));
  53. //激活鼠标提示功能
  54. m_newToolBar.EnableToolTips(TRUE);
  55. //显示工具栏
  56. RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
  57. ......
......
/去掉工具栏
m_wndToolBar.ShowWindow(SW_HIDE);
//设置自己的工具栏
SetIcon(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)),TRUE);
//加载资源图片
m_ImgList.Create(32,32,ILC_COLOR24 | ILC_MASK,1,1);
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_BIG));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_SMALL));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CHECK));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_USER_MAG));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATE));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATA_CHECK));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_DATE_ANYS));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CAR_INFO));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_LOCAL));
m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_HELP));
//设置右工具栏中有10个小按钮
UINT Array[10];
for(int i = 0; i < 11; i++)
{
	//添加分隔符
	if(i == 3)
	{
		Array[i] = ID_SEPARATOR;
	}
	else
	{
		//代表其中按钮的地址(方面为其按钮添加消息响应函数)
		Array[i] = 9000+i;
	}
}
//创建工具栏
m_newToolBar.Create(this);
//设置按钮
m_newToolBar.SetButtons(Array,11);
//设置按钮图标文字
m_newToolBar.SetButtonText(0,"放大");
m_newToolBar.SetButtonText(1,"缩小");
m_newToolBar.SetButtonText(2,"移动");
m_newToolBar.SetButtonText(4,"账户管理");
m_newToolBar.SetButtonText(5,"日志管理");
m_newToolBar.SetButtonText(6,"数据查询");
m_newToolBar.SetButtonText(7,"数据分析");
m_newToolBar.SetButtonText(8,"车辆信息");
m_newToolBar.SetButtonText(9,"定位");
m_newToolBar.SetButtonText(10,"帮助");
//设置按钮大小
m_newToolBar.GetToolBarCtrl().SetButtonWidth(60,120);
//将按钮和资源图标相关联
m_newToolBar.GetToolBarCtrl().SetImageList(&m_ImgList);
m_newToolBar.SetSizes(CSize(70,60),CSize(32,32));
//激活鼠标提示功能
m_newToolBar.EnableToolTips(TRUE);
//显示工具栏
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
......
5、我收集的资源图标连接地址:

http://download.csdn.net/my


6、显示效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值