C++ 工具栏CToolBar的使用

这段代码展示了如何在Windows应用程序中创建一个带有冷热状态图像的工具栏。首先,使用CreateEx创建了一个扁平风格的工具栏,并加载了资源ID为IDR_TOOLBAR1的工具栏资源。接着,通过CImageList加载位图并设置为工具栏的图像列表和热图像列表。然后调整按钮大小,并在点击相应按钮时显示消息框。最后,定义了文件新建、工具栏按钮和右键菜单的响应函数。
摘要由CSDN通过智能技术生成

OnInitialDialog 

m_toolbar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP);
	m_toolbar.LoadToolBar(IDR_TOOLBAR1);

	CImageList imgs;
	CBitmap bmp;
	
	bmp.LoadBitmap(IDB_COLD);
	imgs.Create(32,32,ILC_MASK|ILC_COLOR24,3,1);
	imgs.Add(&bmp,RGB(255,255,255));
	m_toolbar.GetToolBarCtrl().SetImageList(&imgs);
	imgs.Detach();
	bmp.Detach();

	bmp.LoadBitmap(IDB_HOT);
	imgs.Create(32,32,ILC_MASK|ILC_COLOR24,3,1);
	imgs.Add(&bmp,RGB(255,255,255));
	m_toolbar.GetToolBarCtrl().SetHotImageList(&imgs);
	imgs.Detach();
	bmp.Detach();

	CRect rect;
	m_toolbar.GetItemRect(0,&rect);
	m_toolbar.SetSizes(rect.Size(),CSize(32,32));
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
void CDemoDlg::OnFileNew()
{
	// TODO: 在此添加命令处理程序代码
	AfxMessageBox(_T("File -> New"));
}

void CDemoDlg::OnToolBarButton1()
{
	AfxMessageBox(_T("Toolbar Button 1"));
}

void CDemoDlg::OnToolBarButton2()
{
	AfxMessageBox(_T("Toolbar Button 2"));
}

void CDemoDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// TODO: 在此处添加消息处理程序代码
	CMenu menu;
	if(!menu.LoadMenu(IDR_MENU_POP))
	{
		return;
	}
	CMenu* pPopupMenu = menu.GetSubMenu(0);
	pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,pWnd);
}


void CDemoDlg::OnPopupMenu2()
{
	// TODO: 在此添加命令处理程序代码
	AfxMessageBox(_T("菜单2"));
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值