您的位置:首页 > 其它

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

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

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

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

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

[cpp]
view plaincopyprint?

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

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


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

[cpp]
view plaincopyprint?

......
/去掉工具栏
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);
......

......
/去掉工具栏
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、显示效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: