MFC手动创建带图标的工具栏
(2013-02-06 09:44:36)
很多时候我们需要自己创建工具栏。
1、创建基于对话框的工程
2、在OnInitDialog后面添加如下初始化代码
//创建图像列表
m_ImageList.Create(32, 32, ILC_COLOR24|ILC_MASK,
1, 1);
//向图像列表中添加图图像
CBitmap bmp;
for(int n=0; n<5; n++)
{
bmp.LoadBitmap(IDB_BITMAP1 +
n);
m_ImageList.Add(&bmp,
RGB(255, 255, 255));
bmp.DeleteObject();
}
//定义工具栏命令ID数组
UINT nArray[5];
for(int i=0; i<5; i++)
{
nArray[i] = ID_ADDINFO +
i;
}
m_Toolbar.CreateEx(this);
m_Toolbar.SetButtons(nArray, 5);
//设置工具栏按钮和按钮图像大小
m_Toolbar.SetSizes(CSize(60, 56), CSize(24,
24));
//设置工具栏文本
m_Toolbar.SetButtonText(0, "信息添加");
m_Toolbar.SetButtonText(1, "信息修改");
m_Toolbar.SetButtonText(2, "信息删除");
m_Toolbar.SetButtonText(3, "信息查询");
m_Toolbar.SetButtonText(4, "信息保存");
//设置工具栏按钮显示图标
m_Toolbar.GetToolBarCtrl().SetImageList(&m_ImageList);
//显示工具栏
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
AFX_IDW_CONTROLBAR_LAST, 0);
3、添加命令消息响应
定义命令宏
//定义工具栏按钮命令ID
#define
ID_ADDINFO 1001
#define ID_UPDATEINFO 1002
#define
ID_DELINFO 1003
#define ID_QUERYINFO 1004
#define
ID_SAVEINFO 1005
响应命令消息
ON_COMMAND(ID_ADDINFO, OnAddInfo)
ON_COMMAND(ID_UPDATEINFO, OnUpdateInfo)
....
ON_COMMAND(ID...)
|